在三角洲湖泊中使用的spark.databricks.delta.snapshotPartitions配置是什么?

时间:2020-05-06 12:50:33

标签: apache-spark delta-lake

我正穿过三角洲湖,遇到了一个配置spark.databricks.delta.snapshotPartitions,但是不确定这是做什么用的?在三角洲湖泊文档中也找不到此内容。

在三角洲湖github中找到了以下代码,但不确定该属性如何工作

  val DELTA_SNAPSHOT_PARTITIONS =
    buildConf("snapshotPartitions")
      .internal()
      .doc("Number of partitions to use when building a Delta Lake snapshot.")
      .intConf
      .checkValue(n => n > 0, "Delta snapshot partition number must be positive.")
      .createOptional

1 个答案:

答案 0 :(得分:0)

Delta Lake使用Spark处理_delta_log目录中的事务日志。 Delta Lake加载事务日志时,它将重播日志以生成表的当前状态,称为Snapshot。此步骤中有一个repartition操作。您可以使用spark.databricks.delta.snapshotPartitions来配置repartition操作中要使用的分区数。当表元数据增长时,您可能需要增加此配置,以便可以将表元数据的每个分区放入执行程序内存中。