在 R 中使用 rimpala 将插入插入到查询中

Posted

技术标签:

【中文标题】在 R 中使用 rimpala 将插入插入到查询中【英文标题】:Forming insert into query using rimpala in R 【发布时间】:2014-08-21 15:34:35 【问题描述】:

我正在尝试使用rimpala.query() 函数通过R 对impala 表执行insert into 查询,但我收到错误消息。我正在执行的查询是:

for(x in nrow)

    rite <- paste("INSERT INTO table1 (account_no, data_id, date_id, industry_no, sales_no, sales) VALUES (1445367,",data_frame1$data_id[x] ,",25,11346,23,", data_frame1$sales[x], ")",sep="")
    sql <- rimpala.query(rite);


其中data_frame1 是具有一堆行的数据框,nrowdata_frame1 中的行数。第一个insert into 语句执行并将第一个数据插入到数据库中,但它在执行后抛出一个错误

Error in rimpala.query(sql) : SQL error Error: The query did not generate a result set!

如何消除此错误?

【问题讨论】:

我不熟悉impala,但似乎您需要使用paste0 可能吗?比如:sql &lt;- rimpala.query(paste0("INSERT INTO table1 (account_no, data_id, date_id, industry_no, sales_no, sales) VALUES (1445367,",data_frame1$data_id[x] ,",25,11346,23,", data_frame1$sales[x], ")")) @DavidArenburg 我执行了你提到的查询,但它给出的错误是:SQL error Error: The query did not generate a result set 那么您的sql 代码中可能有错误。它看起来不像是 R 问题 可能是什么错误?相同的 sql 语句在 postgrsql 上运行良好。 SQL 没问题。问题出在驱动程序上。见下文。 【参考方案1】:

错误出现在RImpala 客户端,它使用executeQuery 运行所有查询,甚至是那些修改状态的查询。他们应该将executeUpdate 用于 DDL 和 INSERT、UPDATE 或 DELETE 查询。我已经在上游为您提交了issue。

【讨论】:

感谢上游。我希望这个问题能尽快得到解决,因为我有点迫切需要它 这还有效吗?用 rImpala 做一个insert 会很有帮助

以上是关于在 R 中使用 rimpala 将插入插入到查询中的主要内容,如果未能解决你的问题,请参考以下文章

如何在一个脚本中使用 R 将 SQL 查询中的数据插入到单独的 SQL 查询中?

如何使用 Microsoft Visual Studio 将查询插入到 C# 中的另一个查询中?

如何将额外元素插入到 SimpleCursorAdapter 或 Spinner 的光标中?

R markdown:我可以将pdf作为图像插入到r markdown文件中吗?

在 R Shiny 的表中插入 ggplot barplot

将 data.frame 从 R 插入到 Mongodb