首页 > 解决方案 > 在数据块中加载增量表特定分区的最佳实践是什么?

问题描述

我想知道加载增量表特定分区的最佳方法是什么?选项 2 是在过滤之前加载所有表吗?

选项1 :

df = spark.read.format("delta").option('basePath','/mnt/raw/mytable/')\
   .load('/mnt/raw/mytable/ingestdate=20210703')

(这里需要 basePath 选项吗?)

选项 2:

df = spark.read.format("delta").load('/mnt/raw/mytable/')
df = df.filter(col('ingestdate')=='20210703')

提前谢谢了 !

标签: apache-sparkpysparkpartitioningazure-databricksdelta-lake

解决方案


在第二个选项中,spark 仅加载已在过滤条件中提及的相关分区,内部 sparkpartition pruning仅加载源表中的相关数据。

而在第一个选项中,您直接指示 spark 仅加载定义的各个分区。

因此,在这两种情况下,您最终都将仅加载各自的分区数据。


推荐阅读