Parquet和谓词下推和字典压缩

时间:2017-05-29 15:15:39

标签: apache-spark

我使用以下代码序列

database/

我得到了一个带有谓词下推的执行计划

val obs = spark.read.parquet("s3://xxxx/parquettests/by_pat/")
val single = obs.filter($"pat" === "abcd")
single.explain

执行时间(200个文件,每个3MB,哈希分区为" pat")为32秒。

鉴于pat = abcd仅包含在一个文件中,即32秒读取3MB文件并跳过所有其他文件。听起来很多。

我已经检查过这些文件的镶木地板工具,并且列中有PLAIN_DICTIONARY,两页都是" RLE:BIT_PACKED VLE:PLAIN [更多] VC:21400"。

因此我怀疑字典压缩会回落到PLAIN,但我不确定并且我所有尝试改变它都不起作用。

思想?

1 个答案:

答案 0 :(得分:0)

Spark 2.2和Parquet 1.8目前不支持字典编码列的Predicate Push Down 最重要的是,您的镶木地板文件太小,您应该将它们合并为1或2个文件。