4
我在本地機器上運行spark 2,hive,hadoop,並且我想使用spark sql從配置單元表中讀取數據。sparkSession/sparkContext無法獲得hadoop配置
它工作一切正常,當我的Hadoop在默認hdfs://localhost:9000
運行,但如果我更改爲不同的端口核心-site.xml中:
<name>fs.defaultFS</name>
<value>hdfs://localhost:9099</value>
火花外殼運行一個簡單的SQL spark.sql("select * from archive.tcsv3 limit 100").show();
會給我的錯誤:
ERROR metastore.RetryingHMSHandler: AlreadyExistsException(message:Database default already exists)
.....
From local/147.214.109.160 to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused;
.....
我得到AlreadyExistsException之前,這似乎並沒有影響結果。
我可以把它通過創建一個新sparkContext工作:
import org.apache.spark.SparkContext
import org.apache.spark.sql.SparkSession
sc.stop()
var sc = new SparkContext()
val session = SparkSession.builder().master("local").appName("test").enableHiveSupport().getOrCreate()
session.sql("show tables").show()
我的問題是,爲什麼最初sparkSession/sparkContext沒有得到正確的配置?我該如何解決它?謝謝!
深思之前導入
SparkContext
或創建它...上下文創建之前,因爲它不能改變... – jgp