【发布时间】:2018-02-19 20:15:30
【问题描述】:
我正在努力连接到允许动态数据类型连接的 Hadoop 中的数据。
我需要能够连接到 Hive Thrift Server A,拉入一些数据,然后连接到 Hive Thrift Server B 并拉入更多数据。
据我了解,enableHiveSupport 需要在初始 SparkSession.builder 上设置。有没有办法在事后添加/更改节俭连接?
我遇到的唯一可能的解决方案是使用newSession():SparkSession,但我不确定这是否是我正在寻找的正确解决方案。
我正在使用 Spark 2.1、Hadoop 2.7
【问题讨论】:
-
您可以尝试在运行时更改 SparkConf 中的
hive.metastore.uris -
我尝试在运行时使用
sparkSession.conf.set("hive.metastore.uris", "thrift://B:port")更改hive.metastore.uris,但是当我运行sparkSession.sql("SHOW DATABASES").show时,我仍然从thrift A 中取回原始数据库列表。 -
嗯。好吧,如果你的表不是某种奇怪的格式,你可以读取两个表后面的文件系统位置
-
这是个好主意。不幸的是,这对于我正在使用的东西来说并不理想。
-
找到了一个类似的问题并提供了解决方案。 stackoverflow.com/questions/44949246/…
标签: scala hadoop apache-spark hive mapr