java Spark临时表不以直线显示
我在AWS EMR有一个spark cluster,并尝试使用thrift server启动以下代码:
...
JavaSparkContext jsc = new JavaSparkContext(SparkContext.getOrCreate());
HiveContext hiveContext = new HiveContext(jsc);
JavaRDD<Person> people = jsc.textFile("people.txt").map(
new Function<String, Person>() {
public Person call(String line) throws Exception {
...
}
});
DataFrame schemaPeople = hiveContext.createDataFrame(people, Person.class);
schemaPeople.registerTempTable("people_temp");
schemaPeople.saveAsTable("people");
HiveThriftServer2.startWithContext(hiveContext);
...
我使用以下命令运行此代码:
sudo ./sbin/start-thriftserver.sh --jars /home/ec2-user/some.jar --class spark.jobs.thrift.ThriftServerInit
启动thrift server后,我使用直线连接到它:
!connect jdbc:hive2://localhost:10001
,运行show tables;
并获得一个结果:
+--------------+--------------+--+
| tableName | isTemporary |
+--------------+--------------+--+
| people | false |
+--------------+--------------+--+
我希望看到一个临时表people_temp
。为什么people_temp
不存在
# 1 楼答案
在最新的Spark 1.6上。*我发现需要显式地将配置标志设置为single session,以使其与temp表一起工作:spark。sql。蜂箱节约服务器。singleSession=true 请看一下迁移指南 http://spark.apache.org/docs/latest/sql-programming-guide.html#upgrading-from-spark-sql-15-to-16 希望这有帮助
杆子