gpt4 book ai didi

python - 如何使用许多小文件加速 Spark Parquet Reader

转载 作者:太空宇宙 更新时间:2023-11-03 14:22:54 31 4
gpt4 key购买 nike

我正在读取以 parquet 格式存储在本地集群 HDFS 上的 Spark 数据帧。 Parquet 数据分为大约 96,000 个单独的文件。现在我知道理想情况下数据不会被分割成这么多小文件,但现在我必须以这种格式处理它。我正在使用 pyspark v2.2.0。

当我运行 spark.read.parquet(data_root) 时,发生了一些奇怪的事情:spark 依次生成一系列作业,每个作业大约有 2000 个任务。它产生了 48 个这样的作业,每个作业都有一个阶段。在这 48 个作业中,它执行了大约 96,000 个任务 - 我假设它为每个 parquet 文件运行一个任务。每个作业只需要大约 2 秒即可运行。

我觉得奇怪的是,在一项包含 96,000 个任务的作业中不会发生这种情况,因为那样会更快(没有阶段边界)。 2000这个数字是从哪里来的?是否有一个我可以调整的参数来强制更多的这些小任务进入同一个作业,从而加快速度?

最佳答案

这是Spark2.0的新特性。 FileSourceStrategy将较小的 Parquet 文件组合成一个较大的文件,以便它可以以优化的方式工作。理想情况下,每个 Spark 执行器都希望在等于 HDFS block 大小 (128MB) 的 block 大小上工作。

关于python - 如何使用许多小文件加速 Spark Parquet Reader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47829089/

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