Spark SQL下Parquet深入进阶
1、Spark SQL下的Parquet序列化
2、Spark SQL下的Parquet源码解读
3、Spark SQL下Parquet总结
Parquet中Block、File、ColumnChunk
将数据按列存储时,每一列的数据会被分成多个列块。
存储时有一个逻辑级别的概念RowGroup(行组)。每一列的列块组合起来就是RowGroup。RowGroup以Page方式存储。每一个列块会被分成很多Page。Page是压缩和编码的最小单位。
每一个Parquet最少包含一个RowGroup,而一个RowGroup一般会包含多个ColumnChunk(列块),每个列仅对应一个列块,一个列块包含一个或多个Page。结果上,一个Block等同于一个RowGroup。
Parquet包含的元数据:File、RowGroup、ColumnChunk的元数据。