Spark的parquet介绍
- 列式存储布局可加速查询,只检查需要的列并对执行计算,也就是只读取一个数据文件或表的小部分数据。
- Parquet 支持灵活的压缩选项,可以显著减少磁盘上的存储。
- 转换需要时间,时间长了一些。
- 查询性能的提升在某些情况下可能达到 30 倍或更高,存储的节省可高达 75%。
如果在 HDFS 上拥有基于文本的数据文件或表,而且正在使用 Spark SQL 对它们执行查询,那么强烈推荐将文本数据文件转换为 Parquet 数据文件,以实现性能和存储收益。
1. 读取parquet
dtParquet = spark.read.parquet("sp路径")
dtParquet.show(5)
可以直接read一个parquet文件,就转成了dataframe。因为parquet文件里有比较丰富的信息,不像普通的文件。所以推荐是把其他文件的格式,清洗后转换成parquet数据格式。
2. 转成 parquet 文件再读
dfSampled = df.sample(False, 0.1, seed=123)
dfSampled.repartition(10).write.mode("overwrite").parquet("sp路径")
dtParquet = spark.read.parquet("sp路径")
dtParquet.show(5)
参考:spark 读取parquet