无法从直线

时间:2016-09-27 18:50:34

标签: apache-spark apache-spark-sql spark-dataframe

使用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的火花升级版本,如何才能访问临时表?

1 个答案:

答案 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)