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

Posted

技术标签:

【中文标题】在数据块中加载增量表特定分区的最佳实践是啥?【英文标题】:What is the best practice to load a delta table specific partition in databricks?在数据块中加载增量表特定分区的最佳实践是什么? 【发布时间】:2021-07-12 08:37:12 【问题描述】:

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

提前非常感谢!

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于在数据块中加载增量表特定分区的最佳实践是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Visual C++ 中顺序对话框的最佳实践是啥?

Angular 2+ - 数据加载:最佳实践

架构师之路Learn Day7之Hive生产环境最佳实践

在数据仓库中加载数据的最佳方式

在 SQL Server 中对大型表进行分区的最佳方法是啥?

将时间分区添加到表的最佳实践