gpt4 book ai didi

apache-spark - 如何在 Spark 中并行化多个数据集?

转载 作者:行者123 更新时间:2023-12-05 04:07:18 25 4
gpt4 key购买 nike

我有一个 Spark 2.1 作业,我在其中维护多个数据集对象/RDD,它们表示对我们的底层 Hive/HDFS 数据存储的不同查询。我注意到,如果我简单地遍历数据集列表,它们将一次执行一个。每个单独的查询都是并行运行的,但我觉得我们并没有通过不并行运行不同的数据集来最大限度地利用我们的资源。

似乎没有太多关于这样做的内容,因为大多数问题似乎都是关于并行化单个 RDD 或数据集,而不是在同一作业中并行化多个。

出于某种原因这是不可取的吗?我可以只使用执行程序服务、线程池或 future 来执行此操作吗?

谢谢!

最佳答案

是的,您可以在驱动程序代码中使用多线程,但通常这不会提高性能,除非您的查询对非常倾斜的数据进行操作和/或不能很好地并行化以充分利用资源。

你可以这样做:

val datasets : Seq[Dataset[_]] = ???

datasets
.par // transform to parallel Seq
.foreach(ds => ds.write.saveAsTable(...)

关于apache-spark - 如何在 Spark 中并行化多个数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48838380/

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