繁体   English   中英

在数据块中加载增量表特定分区的最佳实践是什么?

[英]What is the best practice to load a delta table specific partition in databricks?

我想知道加载增量表特定分区的最佳方法是什么? 选项 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')

提前谢谢了 !

在第二个选项中,spark 仅加载过滤条件中提到的相关分区,内部 spark 进行partition pruning并仅加载源表中的相关数据。

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

所以在这两种情况下,你最终只会加载各自的分区数据。

如果您的表已分区并且您只想读取一个分区,则可以使用where

val partition = "year = '2019'"


val df = spark.read
 .format("delta")
 .load(path)
 .where(partition)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM