2017-02-22 3 views
1

Ich stoße auf dieses Problem: der DB-Aufruf erstellt nur eine Tabelle, es hat Problem beim Abrufen der JDBC-Ergebnismenge.RJDBC dbGetQuery() Fehler zum Erstellen der externen Tabelle HIVE

Fehler in .verify.JDBC.result (r, „Kann nicht JDBC abzurufen für Anrufe Ergebnismenge: dbGetQuery ... dbSendQuery -> dbSendQuery -> .local -> .verify.JDBC.result Ausführung gestoppt

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

die Tabelle wurde erstellt, und richtige Daten wurden aus den S3-Buckets zugeordnet, was jedoch Der Prozess hält immer an und gibt den Fehler zurück. Ich kann also kein multipl erstellen Die Tabellen in einem R-Skript, stattdessen muss ich ein R-Skript für jede Tabelle erstellen, die ich erstellen muss. –

Antwort

0

Statt dbGetQuery können Sie versuchen, dbSendUpdate mit? ich ähnliche Probleme hatte und diesen Schalter macht das Problem gelöst.

Verwandte Themen