parquet的 predicate pushdown是否意味着只有所需的数据才真正从磁盘加载?e、 如果我创建一个sparkDataframe select 特定字段,是否只从磁盘读取这些字段?
select
mrphzbgm1#
predicate 下推处理将扫描哪些值,而不是哪些列。因此,如果对列a应用filter只返回值为v的记录, predicate push down将使parquet成为可能包含值v的只读块。parquet在多个级别上保存min/max统计信息,它将把值v与那些min/max头进行比较,并且只扫描min/max包含值v的块。这是用于 predicate 下推。parquet的另一个特性是“投影下推”(projection pushdown)——它将数据存储在列中,因此当您的投影将查询限制为某些列时,将只返回这些列。这个特性不是所谓的 predicate 下推。
1条答案
按热度按时间mrphzbgm1#
predicate 下推处理将扫描哪些值,而不是哪些列。因此,如果对列a应用filter只返回值为v的记录, predicate push down将使parquet成为可能包含值v的只读块。parquet在多个级别上保存min/max统计信息,它将把值v与那些min/max头进行比较,并且只扫描min/max包含值v的块。这是用于 predicate 下推。
parquet的另一个特性是“投影下推”(projection pushdown)——它将数据存储在列中,因此当您的投影将查询限制为某些列时,将只返回这些列。这个特性不是所谓的 predicate 下推。