阅读document之后,我知道每种编码的含义。 但是我不明白为什么一列有三种编码。
例如:
ENC:BIT_PACKED,PLAIN,RLE
ENC:BIT_PACKED,PLAIN_DICTIONARY,RLE
答案 0 :(得分:1)
这必须确保每一列至少具有三个不同的序列化数组。
BIT_PACKED
或RLE
编码。BIT_PACKED
或RLE
编码。PLAIN
或RLE_DICTIONARY
等其他编码中的一种。由于数据也可以分为多个页面,因此每个页面可能会获得不同的编码。例如,当一列经过字典编码时,第一页将是PLAIN_DICTIONARY
或RLE_DICTIONARY
。当字典过大时,Parquet实现可能会为所有后续页面切换到不同的编码,例如PLAIN
。答案 1 :(得分:0)
row group 0
--------------------------------------------------------------------------------
x: DOUBLE SNAPPY DO:0 FPO:4 SZ:1632/31635/19.38 VC:70000 ENC:RLE,BIT_PACKED,PLAIN_DICTIONARY ST:[min: 1.0, max: 5.0, num_nulls: 10000]
y: BINARY SNAPPY DO:0 FPO:1636 SZ:864/16573/19.18 VC:70000 ENC:RLE,BIT_PACKED,PLAIN_DICTIONARY ST:[min: a, max: é, num_nulls: 10000]
z: DOUBLE SNAPPY DO:0 FPO:2500 SZ:560097/560067/1.00 VC:70000 ENC:PLAIN,BIT_PACKED ST:[min: 2.0828331581679294E-7, max: 0.9999892375625329, num_nulls: 0]
x TV=70000 RL=0 DL=1 DS: 5 DE:PLAIN_DICTIONARY
----------------------------------------------------------------------------
page 0: DLE:RLE RLE:BIT_PACKED VLE:PLAIN_DICTIONARY ST:[min: 1.0, max: 5.0, num_nulls: 10000] SZ:31514 VC:70000
我猜想ENC:BIT_PACKED,PLAIN_DICTIONARY,RLE
只是行组中某个列块中所有页面中使用的所有编码(重复级别,定义级别,数据)的集合。不确定是否已订购。
数据编码可能是您感兴趣的信息。您可以从页面级别VLE:PLAIN_DICTIONARY
或列块级别DS: 5 DE:PLAIN_DICTIONARY
看到,这意味着字典有5个键
DLE
-定义级别的编码。RLE
-重复级别编码。VLE
-值编码。