【发布时间】:2021-12-15 20:10:54
【问题描述】:
我收到:
写入 Delta 表时检测到架构不匹配
我尝试遵循建议:
要覆盖您的架构或更改分区,请设置: '.option("overwriteSchema", "true")'.
基于此解决方案:A schema mismatch detected when writing to the Delta table - Azure Databricks
- 我添加了这样一个选项,但它看起来不起作用或者我只是 做错了。
- 我清理了
dbfs:/delta-tables/_delta_log/ - 我什至尝试删除我保存数据的整个文件夹
(
dbfs:/FileStore/shared_upload/[user]/data_Delta)。
这些都没有解决问题。 我做错了什么? 如果我想将旧笔记本与新集群(我终止的旧集群)重用,为什么它会以这种方式运行,所以它应该像我猜的那样“干净”?
我按以下方式进行:
1.我从 GEN2 加载数据。它们以这种方式采用镶木地板格式:
spark.read.option("overwriteSchema", "true")\
.parquet(f"wasbs://{CONTAINER_NAME}@{STORAGE_ACCOUNT_NAME}.blob.core.windows.net/data")
如您所见,我将overwriteSchema 设置为true。
2.然后我保存为delta格式:
sd_weather.write.format('delta').mode("overwrite") \
.save("dbfs:/FileStore/shared_upload/[user]/data_Delta")
3.然后我尝试创建增量表
sd_weather.write.format('delta') \
.mode("overwrite").saveAsTable("data_Delta")
在这里我收到错误:
AnalysisException:写入 Delta 表时检测到架构不匹配
【问题讨论】:
标签: apache-spark pyspark databricks delta-lake