创建数据库 spark sql

Create database spark sql

我正在使用 Spark 2.4.4 和 AWS glue catalog。

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

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

它在 spark-shell 中按预期工作,在 Glue 中创建了一个数据库。 但是当我 运行 同一段代码使用 spark-submit 时,则不会创建数据库。使用 spark-submit 时是否需要执行 commit/flush?

编辑 show databases in spark-shellspark-submit:

得到不同的结果
+---------------------+
|databaseName         |
+---------------------+
|all                  |
|default              |
|hive-db              |
|navi-database-account|
|navi-par             |
|testdb               |
+---------------------+


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

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

需要添加以下配置:

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