我有一个简单的Spark(2.3.0)独立集群,其中有1个主服务器和2个工作器(node-1和node-2)。我通过在节点1上使用带有pyspark的saveAsTable命令将数据框作为持久性表保存到Hive Metastore:
>>> df.write.saveAsTable("test")
工作正常。我可以在该节点(节点1)上重新启动pyspark,然后可以看到该表仍然存在:
>>> spark.sql('show tables').show()
+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
| default| test| false|
+--------+---------+-----------+
但是当我转到另一个节点(节点2)时,我得到以下信息:
>>> spark.sql('show tables').show()
+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
+--------+---------+-----------+
有人可以帮助我了解如何使用节点2中的表吗?
答案 0 :(得分:0)
这是因为metastore数据本地存储在Apache Derby数据库中。我通过使用mysql而不是derby解决了这个问题。