hadoop - 当 parquet 使用 Snappy 算法而不是 gzip 时,将 parquet 数据写入 hive 的 spark 作业卡在了最后一个任务中

标签 hadoop apache-spark apache-spark-sql parquet snappy

我正在将一个 Parquet 文件从 DataFrame 写入 Hive。当我使用 snappy 作为 parquet 压缩算法时,我可以看到所有任务,但 1 个任务在写作阶段迅速完成(例如 30/31)。由于大量的 gc 进程,最后一项任务需要很长时间才能完成。

当我使用 gzip 作为 parquet 压缩算法时,一切都会正常。

我想知道两种压缩算法有什么不同。

最佳答案

gzip 自然受到 Hadoop 的支持。 gzip 基于 DEFLATE 算法,它结合了LZ77 和霍夫曼编码

GZIP 压缩Snappy 使用更多 CPU 资源,但提供更高的压缩率。

GZip 通常是冷数据 选择,不经常访问

Snappy经常访问的热点数据的更好选择。

Snappy 格式是可拆分,但 GZip 不是。可拆分性与 HBase 数据无关。

引用: Data Compression in Hadoop

关于hadoop - 当 parquet 使用 Snappy 算法而不是 gzip 时,将 parquet 数据写入 hive 的 spark 作业卡在了最后一个任务中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45298236/

相关文章:

python - 在spark中创建一个多维随机矩阵

scala - Some(null) 到 Stringtype nullable scala.matcherror

scala - Spark SQL 过滤多个字段

python - PySpark:StructField(..., ..., False) 总是返回 `nullable=true` 而不是 `nullable=false`

sql - HIVE查询如何有效地查找以avro格式存储的数据?

shell - Oozie 电子邮件操作截断包含换行符的字符串

ubuntu - 使用HDFS中的文件到Apache Spark

在将值发送到 reducer 之前对其进行排序

scala - 使用spark解析NiFi数据包

apache-spark - 求pyspark数组的均值<double>