2017-10-24 2 views
1

spark (local[*])을 시작으로 Java 응용 프로그램을 만들고이 파일을 사용하여 CSV 파일을 Dataset<Row>으로 읽고 createOrReplaceTempView으로 임시보기를 만듭니다.Java App 외부에서 내 임시 테이블 쿼리

이 시점에서 SQL을 활용하여 내 응용 프로그램 내에서보기를 쿼리 할 수 ​​있습니다.

개발 및 디버깅 목적으로 응용 프로그램 외부에서 대화식으로 쿼리를 실행하고 싶습니다.

힌트가 있습니까? HiveThriftServer2 - 사전

답변

0

당신은 불꽃의 DeveloperApi를 사용할 수있는

감사합니다.

HiveThriftServer2.startWithContext(sqlContext) 

이 하이브 중고품 서버를 시작합니다 (포트에 기본적으로 10000) : 다음과 같이 응용 프로그램에서 할 필요가

@DeveloperApi 
    def startWithContext(sqlContext: SQLContext): Unit = { 
    val server = new HiveThriftServer2(sqlContext) 

만 것은 SQLContext를 얻고 그것을 사용하는 것입니다 당신은 SQL 클라이언트를 사용할 수 있습니다 - eg 임시 테이블에서 데이터에 액세스하고 질의하기위한 beeline.

또한 --conf spark.sql.hive.thriftServer.singleSession=true을 설정해야 임시 테이블을 볼 수 있습니다. 기본적으로이 값은 false으로 설정되어 있으므로 각 연결에 자체 세션이 있으므로 다른 임시 테이블이 표시되지 않습니다.

"spark.sql.hive.thriftServer.singleSession는"는 - true로 설정하면, 하이브 드리프트 서버는 단일 세션 모드에서 실행 중입니다. 모든 JDBC/ODBC 연결은 임시보기, 기능 레지스트리, SQL 구성 및 현재 데이터베이스를 공유합니다.