Spark临时表出现问题



我使用的是最新的HDP Sandbox (2.4.0.0-169)。我在Spark shell(Spark Version 1.6.0)中写了以下代码

var orcData = sqlContext.sql("select code from sample_07");
var paymentDataCache = orcData.cache;
paymentDataCache.registerTempTable("paymentDataCache");

按照以下命令启动节俭服务器和直线

1) export SPARK_HOME=/usr/hdp/2.4.0.0-169/spark/
2) sudo ./sbin/start-thriftserver.sh --master yarn-client --executor-memory 512m --hiveconf hive.server2.thrift.port=10015
3) ./bin/beeline
4) !connect jdbc:hive2://localhost:10015

现在,如果我执行show表,我希望看到paymentDataCache临时表。请查看附件中的屏幕截图。

我还尝试使用启动旧款服务器

sudo ./sbin/start-thriftserver.sh --master yarn-client --executor-memory 512m --hiveconf hive.server2.thrift.port=10015 --conf spark.sql.hive.thriftServer.singleSession=true

但没有运气。

我们在HDP (2.3.2.0-2950 with Spark 1.4.1) 9节点集群中尝试了相同的过程,但在Spark直线中没有看到临时表。

注册临时表时,该表仅存在于创建该表的Spark上下文中。因此,当您启动一个新的节俭服务器时,它运行的Spark上下文与spark-shell的上下文不同,并且看不到临时表。

如果你想运行一个测试,你可以在你的火花壳中放入以下代码行:

org.apache.spark.sql.hive.thriftserver.HiveServer2.startWithContext(sqlContext)

它使用您传入的Spark上下文启动一个新的节俭服务器。这样,新的节约服务器将能够看到注册的临时表。

相关内容

  • 没有找到相关文章

最新更新