第65课:Spark SQL下Parquet深入进阶

内容:

    Spark SQl下的Parquet的序列化
    SparkSQL下的Parquet源码解析
    SparkSQL的Parquet总结

一、Spark SQl下的Parquet的序列化

    1.block:parquet层面和row group是一个意思
    2.row group:逻辑概念,用于对row进行分区。由数据集中每个column的column chunk组成。是读写过程中的缓存单元,一般在hdfs上推荐一个block为1GB,一个HDFS文件1个bolock
    3.column chunk:某个column的所有数据被称为column chunk,存在与row group,并保证在文件中是连续的
    4.page:多个column chunk之间用page分开,也就是说一个page只会包含一个column的数据,一个page是一个独立的单元(可以被编码或者压缩)
    5.dictionary page:每个page之前都可以选择是否需要dictionary page。dictionary page记录了该page所有不同的值。这可以增强处理速度提高压缩率。
    6.arquet存储数据有以下优点:
        a)数据即索引,查询是可以跳过不符合条件的数据,只读取需要的数据,降低 IO 数据量(行存储没有索引查询时造成大量 IO,建立索引和物化视图代价较大)
        b)只读取需要的列,进一步降低 IO 数据量,加速扫描性能(行存储会扫描所有列)
        c)由于同一列的数据类型是一样的,可以使用高效的压缩编码来节约存储空间第65课:Spark SQL下Parquet深入进阶_第1张图片

 

Parquet的详细内容:quet列式存储格式笔记 

你可能感兴趣的:(Parquet,SparkSQL,spark,SparkSQL,Parquet)