在 Spark 中使用 Parquet 文件时最优化的压缩逻辑是什么?另外,使用每种压缩类型进行压缩后,1GB parquet 文件的大约大小是多少?
这取决于你拥有什么样的数据;文本通常压缩得很好,随机时间戳或浮点值则不太好。
查看最新 Apache 大数据会议上的 此演示文稿,尤其是幻灯片 15-16,其中显示了测试数据集上每列的压缩结果。
[Pres 的其余部分。关于应用于 Parquet 内部结构的压缩理论与实践]
就我而言,压缩似乎增加了文件大小。因此,它本质上使文件变得更大且不可读。如果没有完全理解 Parquet 并将其用于小文件,那么 Parquet 真的很糟糕。因此,如果可以的话,我建议您切换到 avaro 文件格式。
您可以尝试以下步骤在 Spark 中压缩 parquet 文件:
第一步:设置压缩类型,配置spark.sql.parquet.compression.codec属性:
sqlContext.setConf(“spark.sql.parquet.compression.codec”,“编解码器”)
第2步:指定编解码器值。支持的编解码器值为:uncompressed、gzip、lzo和snappy。默认为 gzip。
然后创建一个数据框,从您的数据中说出 Df 并使用以下命令保存它: df.write.parquet(“path_destination”) 如果您现在检查目标文件夹,您可能会看到文件已使用您在上面的步骤 2 中指定的压缩类型存储。
更多详情请参考以下链接: https://www.cloudera.com/documentation/enterprise/5-8-x/topics/spark_parquet.html