无法写入Delta格式:Databricks代码语法错误排查求助
问题分析与修复方案
- 文件格式读取不匹配:你上传的是Parquet格式文件,但代码里用了
.csv()方法读取,这完全错误,必须替换为.parquet()方法。 - 语法错误:代码中的
true未加引号,在PySpark里要么写成带引号的字符串"true",要么写成Python布尔值True(首字母大写),直接写无引号的true会被识别为未定义变量,触发报错。 - 路径后缀错误:你的源文件路径写的是
ExecutiveSummary.txt,但实际上传的是Parquet文件,需将后缀改为.parquet,否则即使格式改对也会读取失败。
修复后的代码
# 写法1:使用字符串参数 spark.read.option("inferschema", "true").option("header", "true").parquet("/FileStore/tables/ExecutiveSummary.parquet").write.format("delta").mode("overwrite").save("/FileStore/tables/delta_train/") # 写法2:使用布尔值参数 spark.read.option("inferschema", True).option("header", True).parquet("/FileStore/tables/ExecutiveSummary.parquet").write.format("delta").mode("overwrite").save("/FileStore/tables/delta_train/")
如果想直接将Delta表注册到Databricks元数据中,方便后续直接调用,可以改用saveAsTable方法:
spark.read.parquet("/FileStore/tables/ExecutiveSummary.parquet").write.format("delta").mode("overwrite").saveAsTable("delta_train")
内容的提问来源于stack exchange,提问作者Learner1122
相关产品推荐
相关产品推荐

