[HADOOP] 하이브 쿼리는 jdbc를 통해 결과 집합을 생성 할 수 없습니다
HADOOP하이브 쿼리는 jdbc를 통해 결과 집합을 생성 할 수 없습니다
저는 Hive와 Hadoop에서 처음입니다. 튜토리얼에서 테이블을 다음과 같이 만들고 싶습니다.
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;
public class HiveCreateDb {
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) {
// Register driver and create driver instance
try {
Class.forName(driverName);
// get connection
Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/mydb", "root", "");
Statement stmt = con.createStatement();
stmt.executeQuery("CREATE TABLE IF NOT EXISTS " + " employee ( e_id int, name String, "
+ " salary String)" + " STORED AS TEXTFILE");
System.out.println("Operation done successfully.");
con.close();
} catch (ClassNotFoundException e) {
System.err.println("class not found!!!!");
e.printStackTrace();
} catch (SQLException e) {
System.err.println("sql exception!!!");
e.printStackTrace();
}
}
}
코드를 실행할 때이 오류가 발생합니다
sql exception!!! java.sql.SQLException: The query did not generate a result set! at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:393)
at tr.com.vedat.hive.HiveCreateDb.main(HiveCreateDb.java:25)
그래서 해결책을 찾지 못했습니다. 누구든지 내가 버그를 찾고 올바른 길로 인도하도록 도울 수 있습니까?
해결법
-
==============================
1.시간이 지남에 따라 Hive 드라이버가 시간이 지남에 따라 더 제한적으로 변경되는 것처럼 보입니다. 이 Google 그룹 토론을 참조하십시오
시간이 지남에 따라 Hive 드라이버가 시간이 지남에 따라 더 제한적으로 변경되는 것처럼 보입니다. 이 Google 그룹 토론을 참조하십시오
새 테이블을 만드는 쿼리에는 stmt.execute ()를 사용하십시오. executeQuery executeQuery ()는 이제 선택 쿼리 (DML)에만 해당되고 execute는 아마도 DDL (데이터 정의)에 해당됩니다.
다른 언어 (내 경우에는 Python 및 C #)에서 본 대부분의 드라이버는 실제로 데이터 구조를 변경할 수있는 메소드와 읽기 전용 동작을 분리하기 때문에 의미가 있습니다.
이 페이지는 DDL에 대한 executeQuery () 사용법을 보여줍니다.
ResultSet res = stmt.executeQuery("create table " + tableName + " (key int, value string)");
여기서 실행 예제는 Python이므로 Java 예제의 모든 DDL은 executeQuery를 사용합니다.
from https://stackoverflow.com/questions/31340332/hive-query-cant-generate-result-set-via-jdbc by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] hadoop에서 시스템 속성을 맵 함수에 전달하는 방법 (0) | 2019.08.15 |
---|---|
[HADOOP] build.sbt에서 구아바가 제대로 음영 처리되지 않는 이유는 무엇입니까? (0) | 2019.08.15 |
[HADOOP] 연결하는 동안 Eclipse Hadoop 플러그인에 "java.io.EOFException"이 표시됨 (0) | 2019.08.15 |
[HADOOP] 하둡의 setJarByClass () (0) | 2019.08.15 |
[HADOOP] 도커를 사용하여 다중 물리적 노드 hadoop 클러스터를 시작할 수 있습니까? (0) | 2019.08.15 |