我正在将Delta Lake 0.4.0与Merge一起使用:
target.alias("t")
.merge(
src.as("s"),
"s.id = t.id
)
.whenMatched().updateAll()
.whenNotMatched().insertAll()
.execute()
src从包含数千个文件的文件夹中读取。合并结果也会生成许多小文件。有没有一种方法可以控制合并结果中的文件编号,例如repartition(1)或coalesce(1)的效果?
谢谢
答案 0 :(得分:0)
无法通过Delta输出操作来控制文件数量。而是在适当的时候使用OPTIMIZE
,或者在诸如Databricks的平台上使用auto-optimization。
答案 1 :(得分:0)
根据https://docs.delta.io/latest/delta-update.html#performance-tuning,您现在可以将spark.delta.merge.repartitionBeforeWrite设置为true以避免发生这种情况。