2017-02-22 11 views
1

이 문제가 발생했습니다. DB 호출은 테이블 만 생성하며 JDBC 결과 집합을 검색하는 문제가 있습니다. .verify.JDBC.result에서RJDBC dbGetQuery() 외부 테이블을 생성하는 중 오류가 발생했습니다. HIVE

오류 (r은, "JDBC를 검색 할 수 없습니다가 통화에 대한 결과 집합 : dbGetQuery ... dbSendQuery -> dbSendQuery -> .local의 -> .verify.JDBC.result 실행은

를 중단 당신은? 나는 비슷한 문제가이 스위치를 만들고 있었다 에게 dbSendUpdate를 사용하여 시도 할 수 있습니다 대신 dbGetQuery의
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 버킷에서 할당 된 프로세스가 항상 멈추고 오류를 반환합니다. 따라서 multipl를 만들 수 없습니다. e 테이블을 하나의 R 스크립트에 저장하는 대신 생성해야하는 각 테이블에 대해 하나의 R 스크립트를 만들어야합니다. –

답변