gpt4 book ai didi

scala - 为什么Apache Spark采取功能不并行?

转载 作者:行者123 更新时间:2023-12-04 22:30:31 26 4
gpt4 key购买 nike

http://spark.apache.org/docs/latest/programming-guide.html 阅读 Apache Spark 指南,它指出:

为什么 take 函数不能并行运行?并行实现这种类型的功能有什么困难?这是否与为了获取 RDD 的前 n 个元素需要遍历整个 RDD 的事实有关?

最佳答案

实际上,虽然 take 不是完全并行的,但也不是完全顺序的。

例如,假设您是 take(200) ,每个分区有 10 个元素。 take 将首先获取分区 0 并看到它有 10 个元素。它假设需要 20 个这样的分区才能获得 200 个元素。但是最好在并行请求中要求更多一点。所以它需要 30 个分区,而它已经有 1 个。所以它接下来并行获取分区 1 到 29。这很可能是最后一步。如果它非常不走运,并且没有找到总共 200 个元素,它会再次进行估计并并行请求另一个批次。

查看代码,它有据可查:
https://github.com/apache/spark/blob/v1.2.0/core/src/main/scala/org/apache/spark/rdd/RDD.scala#L1049

我认为文档是错误的。本地计算仅在需要单个分区时发生。这是第一遍的情况(获取分区 0),但通常不会出现在后面的遍中。

关于scala - 为什么Apache Spark采取功能不并行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28436559/

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