创建数据库火花sql

Posted

技术标签:

【中文标题】创建数据库火花sql【英文标题】:Create database spark sql 【发布时间】:2020-11-24 06:07:48 【问题描述】:

我正在使用带有 AWS 胶水目录的 spark 2.4.4。

在我的 spark 工作中,如果它不存在,我需要用胶水创建一个数据库。我在 spark sql 中使用以下语句来执行此操作。

spark.sql("CREATE DATABASE IF NOT EXISTS %s".format(hiveDatabase));

它在spark-shell 中按预期工作,在 Glue 中创建了一个数据库。 但是,当我使用spark-submit 运行同一段代码时,并没有创建数据库。使用 spark-submit 时是否需要执行提交/刷新?

编辑 我在spark-shellspark-submit 中为show databases 得到不同的结果:

+---------------------+
|databaseName         |
+---------------------+
|all                  |
|default              |
|hive-db              |
|navi-database-account|
|navi-par             |
|testdb               |
+---------------------+


+------------+
|databaseName|
+------------+
|default     |
+------------+

看起来 spark-submit 正在某处创建数据库,但不是在胶水中。

【问题讨论】:

您能否提供更多详细信息?您是否使用 AWS EMR 运行 Spark 作业? spark-submit、client 或 cluster 使用哪种部署模式? 【参考方案1】:

需要添加以下配置:

("spark.sql.catalogImplementation", "hive")

【讨论】:

以上是关于创建数据库火花sql的主要内容,如果未能解决你的问题,请参考以下文章

Hivecontext.sql 返回空结果火花

sql 斯卡拉火花创建-databases.sql

在火花中创建表需要很多时间

执行多个火花查询并存储为数据框

PySpark:无法创建火花数据框

从自定义数据格式创建火花数据框