【发布时间】:2015-01-22 09:40:09
【问题描述】:
我已经向 Spark SQL 注册了一个临时表,如[this section] 中所述:
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")
现在我想通过 JDBC 远程访问这个表。我按照[this other section] 中的说明启动 Thrift 服务器。
./sbin/start-thriftserver.sh --master spark://same-master-as-above:7077
但是表格是不可见的。
0: jdbc:hive2://localhost:10000> show tables;
+---------+
| result |
+---------+
+---------+
No rows selected (2.216 seconds)
我猜这是因为该表是“临时的”(即与 SqlContext 对象的生命周期相关联)。但是如何制作非临时表呢?
我可以通过 Thrift Server 看到 Hive tables,但我不知道如何公开这样的 RDD。我发现 a comment 表明我不能。
或者我应该使用我自己的SqlContext 在我的应用程序中运行 Thrift 服务器吗?它周围的几乎所有类都是private,而且这段代码不在Maven Central(据我所知)。我应该使用HiveThriftServer2.startWithContext 吗?它是无证的,@DeveloperApi,但可能有效。
【问题讨论】:
-
你找到了可行的答案吗?
-
当使用 pyspark 时它不起作用
标签: apache-spark apache-spark-sql