分享

大数据IMF传奇行动绝密课程第63课:Spark SQL下Parquet内幕深度解密

 看风景D人 2019-02-24

Spark SQL下Parquet内幕深度解密

1、Spark SQL下的Parquet意义再思考
2、Spark SQL下的Parquet内幕揭秘

一、Spark SQL下的Parquet意义再思考
1、如果说HDFS是大数据时代分布式文件系统存储的事实标准的话,Parquet则是整个大数据时代文件存储格式的事实标准
2、速度更快:从实用Spark SQL操作普通文件CSV和Parquet文件的速度对比上来看,绝大多数情况下使用Parquet会比使用CSV等普通文件速度提升10倍左右(在一些普通文件系统无法在Spark上成功运行程序的情况下,使用Parquet很多时候都可以成功运行)
3、Parquet的压缩技术非常稳定出色,在Spark SQL中对压缩技术的处理可能无法正常完成工作(例如会导致Lost Task、Lost Executor),使用Parquet就可以正常完成;
4、极大的减少磁盘I/O,通常情况下能够减少75%的存储空间,由此可以极大减少Spark SQL处理数据的时候数据输入内容,尤其是Spark 1.6.x中下推过滤器在一些情况下可以极大地进一步减少磁盘的IO和内存的占用;
Spark1.6.x+Parquet极大的提升了数据扫描的吞吐量,这极大的提高了数据的查找速度
Spark1.6和Spark1.5.x相比较而言,提升了大约1倍的速度,在Spark 1.6.x中,操作Parquet时候CPU的使用也进行了极大的优化,有效的降低了CPU的使用
6、采用Parquet可以极大的优化Spark的调度和执行,测试表明Spark如果采用Parquet可以有效减少Stage的执行消耗,同时可以优化执行路径;
二、Spark SQL下的Parquet内幕揭秘
1、列式存储是以什么基本格式来存储数据的?表现上是树状数据结构,在内部有元数据的Table;
2、在具体的Parquet文件存储的时候有三个核心组成部分:
a)Storage Format: Parquet定义了具体的数据内部的类型和存储格式;
b)Object Model Converters: Parquet中负责计算框架中数据对象和Parquet文件中具体数据类型的映射;
c)Object Models:在Parquet中具有自己的Object Model定义的存储格式,例如说Avro具有自己的对象Object Model,但是Parquet在处理相关格式数据的时候会使用自己的Object Model
3、映射完成后Parquet会进行自己的Column Encoding,然后存储成为Parquet格式的文件

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多