1、使用场景
如同ProtocolBuffer,Avro,Thrift一样,Parquet也是支持元数据合并的。
用户可以在一开始就定义一个简单的元数据,然后随着业务的需要,逐渐往元数据中添加更多的列。在这种情况下,用户可能会创建多个Parquet文件,有着多个不同的但是却互相兼容的元数据。Parquet数据源支持自动推断出这种情况,并且进行多个Parquet文件的元数据的合并。
2、 开启Parquet数据源的自动合并元数据的特性
因为元数据合并是一种相对耗时的操作,而且在大多数情况下不是一种必要的特性,从Spark1.5.0开始,默认是关闭Parquet文件的自动合并元数据的特性的。
可以通过以下两种方式开启Parquet数据源的自动合并元数据的特性:
1)读取Parquet文件时,将数据源的选项,mergeSchema设置为true
2) 使用SQLContext.setConf()方法,将spark.sql.parquet.mergeSchema参数设置为true
3、合并学生的基本信息和成绩信息的元数据
运行结果
本文为北风网Spark2.0培训视频的学习笔记
视频链接:
https://www.bilibili.com/video/av19995678/?p=110