2017-02-22 58 views
1

我遇到這個問題:數據庫調用只創建一個表,它有檢索JDBC結果集的問題。RJDBC dbGetQuery()錯誤創建外部表HIVE

錯誤.verify.JDBC.result(R「,無法檢索JDBC結果爲 呼叫設置:dbGetQuery ... dbSendQuery - > dbSendQuery - >。本地 - > .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) 
+0

創建表,以及適當的數據從S3桶然而這個分配,進程總是暫停並返回錯誤,所以我不能創建多個在一個R腳本中使用表格,而不得不爲每個我需要創建的表格創建一個R腳本。 –

回答

0

相反dbGetQuery的你可以嘗試使用?我有類似的問題,使這個開關dbSendUpdate解決了這個問題。