gpt4 book ai didi

scala - Spark分区比没有它慢得多

转载 作者:行者123 更新时间:2023-12-02 09:36:15 25 4
gpt4 key购买 nike

我测试了写作:

 df.write.partitionBy("id", "name")
.mode(SaveMode.Append)
.parquet(filePath)

但是,如果我省略分区:

 df.write
.mode(SaveMode.Append)
.parquet(filePath)

它的执行速度快了 100 倍(!)。

分区时相同数据量写入时间延长100倍正常吗?

分别有 10 个和 3000 个唯一的 idname 列值。DataFrame 有 10 个额外的整数列。

最佳答案

第一个代码片段会将每个分区的 parquet 文件写入文件系统(本地或 HDFS)。这意味着,如果您有 10 个不同的 ID 和 3000 个不同的名称,则此代码将创建 30000 个文件。我怀疑创建文件、写入 Parquet 元数据等的开销相当大(除了洗牌之外)。

Spark 不是最好的数据库引擎,如果您的数据集适合内存,我建议使用关系数据库。它将变得更快、更容易使用。

关于scala - Spark分区比没有它慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32898218/

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