首页 > 解决方案 > 另一个 Spark 会话中的空数据库

问题描述

我是 Spark 的新手,正在尝试查看/分析在另一个会话中创建的表/视图。分析将来自 Tableau/excel/ODBC 等程序。因此,单独的会话。

问题:能够创建表,但是当我从另一个会话(pyspark 或 ODBC 连接)连接到服务器时,默认数据库中没有表。

如何让它工作?

步骤:在 linux 机器上使用 pyspark 在一个会话中创建一个表:

Spark context available as 'sc' (master = spark://172.22.134.97:7077, app id = app-20210620211601-0002).
SparkSession available as 'spark'.

>>>df = spark.read.parquet("CreditCard.parquet")
>>>df.createOrReplaceTempView("table1")
>>>df.cache()
>>>df.persistent()
>>> spark.sql('show tables from default').show()
+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
|        |   table1|       true|
+--------+---------+-----------+

打开另一个pyspark环境:

Spark context available as 'sc' (master = spark://172.22.134.97:7077, app id = app-20210620212140-0003).
SparkSession available as 'spark'.

>>> spark.sql('show tables from default').show()
+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
+--------+---------+-----------+

环境:ubuntu(wsl2)上的 spark-3.1.2-bin-hadoop3.2 作为独立模式运行(我认为)。

spark.default.conf:

spark.master               spark://172.22.134.97:7077
spark.sql.warehouse.dir  /mnt/e/DataEngineer/metastore_db

工人.conf:

localhost

启动:

./start-master.sh --ip 172.22.134.97 --port 7077
./start-worker.sh spark://172.22.134.97:7077

能够在 spark master web gui 中看到 1 个工作人员。

也尝试过df.createOrReplaceTempGlobalView("table1")(并查看 global_temp 数据库)

标签: apache-sparkpyspark

解决方案


推荐阅读