使用Spark 1.5.1,我已经能够使用Thrift Server从Beeline访问spark-shell临时表。我已经能够通过阅读Stackoverflow上相关问题的答案来实现这一目标。
但是,升级到Spark 2.0之后,我再也看不到Beeline的临时表了,这是我跟随的步骤。
我使用以下命令启动spark-shell:
./bin/spark-shell --master=myHost.local:7077 —conf spark.sql.hive.thriftServer.singleSession=true
一旦火花壳准备就绪,我输入以下行来启动thrift服务器并从数据框创建一个临时视图,将其源代码放在json文件中
import org.apache.spark.sql.hive.thriftserver._
spark.sqlContext.setConf("hive.server2.thrift.port","10002")
HiveThriftServer2.startWithContext(spark.sqlContext)
val df = spark.read.json("examples/src/main/resources/people.json")
df.createOrReplaceTempView("people")
spark.sql("select * from people").show()
最后一个语句显示表格,运行正常。
然而,当我开始直线并登录我的thrift服务器实例时,我看不到任何临时表:
show tables;
+------------+--------------+--+
| tableName | isTemporary |
+------------+--------------+--+
+------------+--------------+--+
No rows selected (0,658 seconds)
我是否错过了从1.5.1升级到2.0的火花升级版本,如何才能访问临时表?
答案 0 :(得分:0)
升级到spark 2.0.1后,这对我有用
val sparkConf =
new SparkConf()
.setAppName("Spark Thrift Server Demo")
.setMaster(sparkMaster)
.set("hive.metastore.warehouse.dir", hdfsDataUri + "/hive")
val spark = SparkSession
.builder()
.enableHiveSupport()
.config(sparkConf)
.getOrCreate()
val sqlContext = new org.apache.spark.sql.SQLContext(spark.sparkContext)
HiveThriftServer2.startWithContext(sqlContext)