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