相关疑难解决方法(0)

通过Thrift服务器访问Spark SQL RDD表

我已经使用Spark SQL注册了一个临时表,如[本节]中所述:

people.registerTempTable("people")
// I can run queries on it all right.
val teenagers = sqlContext.sql("SELECT name FROM people WHERE age >= 13 AND age <= 19")
Run Code Online (Sandbox Code Playgroud)

现在我想通过JDBC远程访问该表.我按照[其他部分]中的描述启动Thrift服务器.

./sbin/start-thriftserver.sh --master spark://same-master-as-above:7077
Run Code Online (Sandbox Code Playgroud)

但桌子不可见.

0: jdbc:hive2://localhost:10000> show tables;         
+---------+
| result  |
+---------+
+---------+
No rows selected (2.216 seconds)
Run Code Online (Sandbox Code Playgroud)

我想这是因为表是"临时的"(即与SqlContext对象的生命周期相关).但是我如何制作非临时表?

我可以通过Thrift服务器看到Hive表,但我不知道如何公开这样的RDD.我发现了一条评论,暗示我做不到.

或者我应该使用自己的应用程序在我的应用程序中运行Thrift服务器SqlContext?几乎所有的类都是private,并且这个代码不在Maven Central中(据我所知).我应该用HiveThriftServer2.startWithContext吗?它没有文档@DeveloperApi,但可能有用.

apache-spark apache-spark-sql

19
推荐指数
2
解决办法
1万
查看次数

避免以编程方式使用创建的上下文启动HiveThriftServer2

我们正在尝试使用ThriftServer从spark 2.0.0中的spark temp表中查询数据.

首先,我们创建了启用Hive支持的sparkSession.目前,我们使用sqlContext启动ThriftServer,如下所示:

HiveThriftServer2.startWithContext(spark.sqlContext());
Run Code Online (Sandbox Code Playgroud)

我们有注册临时表"spark_temp_table"的火花流:

StreamingQuery streamingQuery = streamedData.writeStream()
                                             .format("memory")
                                             .queryName("spark_temp_table")
                                             .start();
Run Code Online (Sandbox Code Playgroud)

通过直线,我们可以看到临时表(运行SHOW TABLES);

当我们想用这种方法运行第二个作业(第二个sparkSession)时,我们必须用不同的端口启动第二个ThriftServer.

我这里有两个问题:

  1. 有没有办法让一个端口上有一个ThriftServer可以访问不同sparkSessions中的所有临时表?

  2. HiveThriftServer2.startWithContext(spark.sqlContext());@DeveloperApi.注释.有没有办法以编程方式在代码中启动带有上下文的thrift服务器?
    我看到--conf spark.sql.hive.thriftServer.singleSession=true在启动时传递给ThriftServer的配置(sbin/start-thriftserver.sh)但是我不明白如何为作业定义它.我试图在sparkSession构建器中设置此配置属性,但beeline没有显示临时表.

hadoop hive apache-spark apache-spark-sql apache-spark-2.0

10
推荐指数
1
解决办法
953
查看次数