1

我正在使用带有 Merge 的 Delta Lake 0.4.0,例如:

target.alias("t")
          .merge(
            src.as("s"),
            "s.id = t.id 
          )
          .whenMatched().updateAll()
          .whenNotMatched().insertAll()
          .execute()

src 从包含数千个文件的文件夹中读取。合并结果也会生成许多小文件。有没有办法控制合并结果中的文件号,例如重新分区(1)或合并(1)的效果?

谢谢

4

2 回答 2

0

无法控制 Delta 输出操作中的文件数量。相反,OPTIMIZE在适当的时间使用,或者在 Databricks 等平台上,利用自动优化

于 2019-11-19T16:28:01.920 回答
0

根据https://docs.delta.io/latest/delta-update.html#performance-tuning 您现在可以将 spark.delta.merge.repartitionBeforeWrite 设置为 true 以避免这种情况。

于 2020-05-15T06:49:34.343 回答