我们正在尝试使用ThriftServer从Spark 2.0.0中的临时表中查询数据。
首先,我们创建了启用Hive支持的sparkSession。目前,我们使用如下sqlContext启动ThriftServer:
HiveThriftServer2.startWithContext(spark.sqlContext());
我们有一个带有注册临时表“spark_temp_table”的Spark流:StreamingQuery streamingQuery = streamedData.writeStream()
.format("memory")
.queryName("spark_temp_table")
.start();
通过使用Beeline,我们可以看到临时表(运行SHOW TABLES);
当我们想要运行第二个作业(使用第二个sparkSession)时,我们必须使用不同的端口启动第二个ThriftServer。
在这里我有两个问题:
有没有办法在一个端口上拥有一个ThriftServer并访问不同sparkSessions中的所有临时表?
HiveThriftServer2.startWithContext(spark.sqlContext());
被注释为@DeveloperApi
。是否有方法以编程方式启动具有上下文的thrift server?
我看到启动时有配置--conf spark.sql.hive.thriftServer.singleSession=true
传递给ThriftServer(sbin/start-thriftserver.sh),但我不知道如何为作业定义此配置。我尝试在sparkSession构建器中设置此配置属性,但beeline没有显示临时表。
HiveThriftServer2.startWithContext(spark.sqlContext());
)。我们实际上试图开始使用单个会话启动sbin/start-thriftserver.sh
,但没有成功。基本上,我们需要通过Spark JDBC服务器访问“temp”表,并从具有“JDBC”连接的不同应用程序查询“temp”表。 - VladoDemcakmaster local
时,是否有可能查看临时表? - VladoDemcak