如何在本地设置Delta的logRetentionDuration参数?
在本地PySpark中配置Delta Lake日志保留时长
- 先确认delta-spark版本:低于2.0.0的版本对部分Delta配置参数支持有限,建议升级到2.0.0及以上版本。
- 全局配置需在SparkSession初始化阶段设置,启动后修改不会生效,正确的初始化代码示例:
from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("DeltaLogRetentionSetup") \ .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension") \ .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog") \ .config("spark.databricks.delta.logRetentionDuration", "interval 52 weeks") \ # 可选:同时配置已删除文件的保留时长 .config("spark.databricks.delta.deletedFileRetentionDuration", "interval 52 weeks") \ .getOrCreate() - 若全局配置不生效,可针对单个Delta表单独设置属性(优先级高于全局配置):
from delta.tables import DeltaTable delta_table = DeltaTable.forPath(spark, "/path/to/your/delta/table") delta_table.updateProperties({ "delta.logRetentionDuration": "interval 52 weeks", "delta.deletedFileRetentionDuration": "interval 52 weeks" }) - 验证配置是否生效:执行
spark.sql("DESCRIBE EXTENDED delta./path/to/your/delta/table").show(truncate=False),查看输出中的delta.logRetentionDuration属性值是否正确。
内容的提问来源于stack exchange,提问作者Col1ns
相关产品推荐
相关产品推荐

