RJDBC dbGetQuery()创建外部表配置单元时出错

RJDBC dbGetQuery()创建外部表配置单元时出错,r,create-table,rjdbc,R,Create Table,Rjdbc,我遇到了这个问题:DB调用只创建一个表,它有检索JDBC结果集的问题 .verify.JDBC.result(r)“无法检索的JDBC结果集”中出错 调用:dbGetQuery…dbSendQuery->dbSendQuery->.local->.verify.JDBC.result 停止执行 options( java.parameters = "-Xmx32g" ) library(rJava) library(RJDBC) drv <- JDBC("o

我遇到了这个问题:DB调用只创建一个表,它有检索JDBC结果集的问题

.verify.JDBC.result(r)“无法检索的JDBC结果集”中出错 调用:dbGetQuery…dbSendQuery->dbSendQuery->.local->.verify.JDBC.result 停止执行

    options( java.parameters = "-Xmx32g" )
    library(rJava)
    library(RJDBC)
    drv <- JDBC("org.apache.hive.jdbc.HiveDriver", "/tmp/r_jars/hive-jdbc.jar")
    for(jar in list.files('/tmp/r_jars/')){
        .jaddClassPath(paste("/tmp/r_jars/",jar,sep=""))
    }

    conn <- dbConnect(drv, "jdbc:hive2://10.40.51.75:10000/default", "myusername", "mypassword")

    createSCOREDDL_query <- "CREATE EXTERNAL TABLE hiveschema.mytable (
       myvariables
    )
    ROW FORMAT SERDE
    'com.bizo.hive.serde.csv.CSVSerde'
     STORED AS INPUTFORMAT
    'org.apache.hadoop.mapred.TextInputFormat'
     OUTPUTFORMAT
     'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
     LOCATION
    's3://mybucket/myschema/'"

    dbGetQuery(conn, createSCOREDDL_query)
    dbDisconnect(conn)
选项(java.parameters=“-Xmx32g”)
图书馆(rJava)
图书馆(RJDBC)

drv代替dbGetQuery你能试着使用dbSendUpdate吗?我遇到了类似的问题,使用这个开关解决了问题。

我按照@KaIC的建议尝试了以下代码,它成功了:

dbSendUpdate(conn, "CREATE EXTERNAL TABLE hiveschema.mytable ( col_A  string, col_B  string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE")

对于多个表,可以在函数中创建列表或循环,并使用
apply()
construct将其应用于整个循环。

创建了表,并从S3存储桶中分配了适当的数据,但是此过程始终会停止并返回错误。因此,我无法在一个R脚本中创建多个表,而是必须为需要创建的每个表创建一个R脚本。