Parquet谓词下推

11

Parquet 的谓词下推是否表示只有所需数据才实际从磁盘加载?

例如,如果我创建一个 Spark Dataframe,仅 select 特定字段,那么只有这些字段会从磁盘读取吗?


2
在某种程度上是这样。Spark 项目可以获取所需的列,但这并不是谓词下推的主要意义。谓词下推通常涵盖放置在 WHERE 子句中的条件。 - zero323
1个回答

24
谓词下推处理的是哪些值将被扫描,而不是哪些列。 因此,如果您对列A应用过滤器,只返回具有值V的记录,则谓词下推会使parquet仅读取可能包含值V的块。 Parquet在多个级别上保持最小/最大统计信息,并将值V与这些最小/最大标题进行比较,并仅扫描最小/最大包含值V的块。这就是谓词下推。
另一个parquet的特点是“投影下推”,它将数据存储在列中,因此当查询限制为特定列时,只有这些列会被返回。这个特性并不是所谓的谓词下推。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接