Parquet 的谓词下推是否意味着实际上仅从磁盘加载了所需的数据?

例如。如果我创建一个spark数据框,并且仅使用select特定字段,那么是否仅从磁盘读取这些字段?

最佳答案

谓词下推处理将扫描哪些值,而不处理哪些列。
因此,如果将过滤器应用于列A仅返回值V的记录,则谓词下推将使 Parquet 仅读取可能包含值V的块。
Parquet在多个级别上保留了最小/最大统计信息,它将把值V与那些最小/最大报头进行比较,并且仅扫描最小/最大包含值V的块。
这是用于谓词下推。

Parquet 的另一件事是“投影下推”-它将数据存储在列中,因此当您的投影将查询限制到某些列时,将仅返回那些列。但是,此功能不是所谓的谓词下推。

关于hadoop - Parquet 谓词下推,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35068278/

10-11 07:43