r系统命令

e0bqpujr  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(243)

因为 rjdbc 以及 hive2 不适用于,我正在使用 system 命令,用于在本地运行配置单元查询。

ret_text <- system(paste0("hive -S -e ","'", hql,"'"), wait = TRUE,intern=TRUE)

但是命令的格式如下 system . 由于额外的单引号,执行失败。
'hive-s-e'插入(col1,col2)值(1,'2019-01-11')'
理想情况下,如果它像下面它应该工作
“hive-s-e'插入(col1,col2)值(1,'2019-01-11')”
(由于涉及引号,无法正确格式化)
你知道怎么解决吗?

rks48beu

rks48beu1#

我可以通过转义单引号和使用双引号来解决这个问题,如下所示

hql=gsub("'","\'",hql)
  ret_text <- system(paste0("hive -S -e ","\"", hql,"\""), wait = TRUE,intern=TRUE)

首先转义sql中的所有单引号,并使用双引号来 Package sql,而不是单引号(转义 Package 器也使用双引号)

相关问题