【问题标题】:Parquet predicate pushdownParquet 谓词下推
【发布时间】:2016-05-06 05:30:26
【问题描述】:

parquet 的谓词下推是否意味着只有需要的数据实际上是从磁盘加载的?

例如如果我创建了一个 spark 数据框并且只创建了 select 特定字段,是否会从磁盘读取这些字段?

【问题讨论】:

  • 那种。如果可以的话,Spark 项目只获取所需的列,但这不是谓词下推的内容。谓词下推通常涵盖放在WHERE 子句中的条件。

标签: hadoop apache-spark parquet bigdata


【解决方案1】:

谓词下推处理将扫描哪些值而不是哪些列。 因此,如果您对列 A 应用过滤器以仅返回值为 V 的记录,则谓词下推将使 parquet 只读块可能包含值 V。 Parquet 将 min/max 统计信息分为几个级别,它将值 V 与那些 min/max 标头进行比较,并且只扫描 min/max 包含值 V 的块。 这是用于谓词下推。

parquet 的另一件事是“投影下推”——它将数据存储在列中,因此当您的投影将查询限制为某些列时,只会返回这些列。不过这个特性并不是所谓的谓词下推。

【讨论】:

    猜你喜欢
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2021-07-15
    • 2016-04-27
    • 2019-01-21
    • 2019-09-17
    相关资源
    最近更新 更多