我正试图通过节俭服务器通过JDBC公开我的spark sql表,但即使看起来我已经成功连接,它也不起作用。以下是我迄今为止所做的尝试。
数据库设置:
在pyspark中,我加载了一个镶木地板文件,创建了一个临时视图tableX
.saveAsTable
作为hive_tableX
spark.sql("SELECT * FROM hive_tableX LIMIT 1").show()
,它返回了一些数据从spark sql:查询
- 然后我运行
spark-sql
,启动了spark sql shell USE default
show tables;
-->我看到我的桌子在那里,hive_tableX
- CCD_ 9和我看到了一些成功的结果
- 因此,我相信现在已经验证了我的表已经保存在蜂箱元存储中,对吧
然后我打开节俭服务器
./sbin/start-thriftserver.sh
接下来,我打开直线,这样我就可以测试节俭服务器连接
!connect jdbc:hive2://localhost:10000
(并输入用户名和密码)- 然后我选择默认数据库:
use default;
- 和
show tables;
-->什么都没有
那么,我的表在哪里?是直线还是节俭指向另一个仓库
编辑:我认为我的节俭服务器没有使用正确的仓库目录,所以我试图用一个配置选项启动它:
- [仍然没有]sbin/start-thriftserver.sh--hiveconf spark.sql.warehouse.dir=/code/spark/strift/spark仓库
- [仍然没有任何内容]sbin/start-thriftserver.sh--conf-spark.sqlwarehouse.dir=/code/spark/scrift/spark-warehouse
编辑:在与创建房子的地方相同的物理目录中启动它似乎可以做到这一点。尽管如此,我不知道如何通过编程将路径设置为其他路径,然后在其他地方启动它。
这个特殊问题的解决方案是,我从spark-wherehouse
和metastore_db
所在的不同目录启动节俭。
一旦我从正确的目录启动它,它就如预期的那样工作,我的表现在就可用了。