我們試圖使用ThriftServer從spark 2.0.0中的spark temp表中查詢數據。以編程方式避免以創建的上下文啓動HiveThriftServer2
首先,我們創建了SparkSession並啓用了Hive支持。 目前,我們開始ThriftServer與sqlContext這樣的:
HiveThriftServer2.startWithContext(spark.sqlContext());
我們有註冊臨時表火花流 「spark_temp_table」:
StreamingQuery streamingQuery = streamedData.writeStream()
.format("memory")
.queryName("spark_temp_table")
.start();
隨着直線,我們能夠看到的臨時表(運行SHOW TABLES );
當我們想用這種方法運行第二個工作(第二個sparkSession)時,我們必須從不同的端口啓動第二個ThriftServer。
我這裏有兩個問題:
有沒有辦法有一個端口上一個ThriftServer可以訪問所有的臨時表在不同的sparkSessions?
HiveThriftServer2.startWithContext(spark.sqlContext());
注有@DeveloperApi
。有沒有什麼方法可以編程方式啓動不帶代碼的上下文服務器?
我看到有配置--conf spark.sql.hive.thriftServer.singleSession=true
在啓動時傳遞給ThriftServer(sbin/start-thriftserver.sh),但我不明白如何定義這個作業。我試圖在sparkSession構建器中設置此配置屬性,但直線沒有顯示臨時表。
回答你的問題之前,我會問一個問題:)你真的需要開始'ThriftServer'「編程」? – user1314742
@ user1314742不,我們不需要(也不想 - 試圖避免'HiveThriftServer2.startWithContext(spark.sqlContext());')。我們實際上試圖啓動'sbin/start-thriftserver。sh'與單一會議,但沒有運氣。基本上我們需要的是通過Spark JDBC服務器訪問'temp'表並且查詢'temp'表(從具有'JDBC'連接的不同應用程序)查詢 – VladoDemcak
當我們全部使用'master local''時可以看到臨時表? – VladoDemcak