有人知道如何在作业集群中的 dbx 中的 Python 脚本中运行 spark.sql 命令吗?我的代码以某种方式在个人计算集群上运行,但在作业集群上失败。我猜这是 JDBC 设置,但似乎无法在作业集群上指定 JDBC 设置。
以下是我尝试执行的 SQL 命令。我按照 dbx 中规定的 OOP 格式进行操作。该位置是安装到 DBFS 的 Azure Blob 存储中的随机位置。
我试图在 Pyspark 中编写一个 Spark Dataframe 以插入到 Delta 表中。
self.spark.sql(
f"""
CREATE SCHEMA IF NOT EXISTS solis
LOCATION '{self.metadata_db_path}'
"""
)
self.spark.sql(
f"""
CREATE TABLE IF NOT EXISTS solis.metadata (
imagekey STRING, StdImgDate STRING, StdImgView STRING,
StdProdID STRING, StdVisit STRING, Study STRING, RowKey STRING,
ProcessedTimestamp LONG
) USING DELTA LOCATION '{self.metadata_db_path}'
PARTITIONED BY (Study)
"""
但是它能够创建模式但无法创建表。它不断产生以下错误。
AzureBlobFileSystemStore: Received exception while listing a directory.
Operation failed: "The specified path does not exist.", 404
我认为这是 JDBC 设置,因为我能够使用
dbx execute
在交互式集群上执行它,但它总是在作业集群上失败。
那么我如何才能在作业集群中运行 SQL 查询?