gpt4 book ai didi

hadoop - 拥有一个大的 parquet 文件还是许多较小的 parquet 文件更好?

转载 作者:可可西里 更新时间:2023-11-01 14:13:34 27 4
gpt4 key购买 nike

我知道 hdfs 会将文件拆分成大约 64mb 的 block 。我们有流式传输的数据,我们可以将它们存储到大文件或中等大小的文件中。列式文件存储的最佳大小是多少?如果我可以将文件存储到最小列为 64mb 的位置,它会比拥有 1gb 文件节省任何计算时间吗?

最佳答案

目标是每个文件(spark 分区)大约 1GB (1)。

理想情况下,您会使用 snappy 压缩(默认),因为 snappy 压缩的 parquet 文件是可拆分的 (2)。

使用 snappy 而不是 gzip 会显着增加文件大小,因此如果存储空间是个问题,则需要考虑这一点。

.option("compression", "gzip")是覆盖默认 snappy 压缩的选项。

如果您需要调整数据集/DataFrame/RDD 的大小/重新分区,请调用 .coalesce(<num_partitions>或最坏情况.repartition(<num_partitions>)功能。警告:重新分区尤其是合并可能会导致数据重新洗牌,因此请谨慎使用。

此外,parquet 文件大小以及与此相关的所有文件的大小通常应大于 HDFS block 大小(默认为 128MB)。

1) https://forums.databricks.com/questions/101/what-is-an-optimal-size-for-file-partitions-using.html2) http://boristyukin.com/is-snappy-compressed-parquet-file-splittable/

关于hadoop - 拥有一个大的 parquet 文件还是许多较小的 parquet 文件更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42918663/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com