gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 12:43:30 24 4
gpt4 key购买 nike

我已经在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 Server。

./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服务器看到 Hive tables,但是看不到如何公开这样的RDD。我发现 a comment提示我不能。

还是应该使用自己的 SqlContext在应用程序中运行Thrift Server?围绕它的几乎所有类都是 private,并且此代码不在Maven Central中(据我所知)。我应该使用 HiveThriftServer2.startWithContext吗?它没有文档记录, @DeveloperApi,但可能有效。

最佳答案

修改spark-defaults.conf并添加spark.sql.hive.thriftServer.singleSession true

这使Thrift服务器可以直接基于RDD查看临时表,而不必保存该表。您也可以在Spark SQL中执行CACHE TABLE XXX AS <query>,并通过ODBC / JDBC将其公开。

关于apache-spark - 通过Thrift服务器访问Spark SQL RDD表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27108863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com