gpt4 book ai didi

scala - spark 是否优化应用于 RDD 的多个过滤器?

转载 作者:行者123 更新时间:2023-12-01 23:02:51 24 4
gpt4 key购买 nike

我正在运行一个简单的 Spark 应用程序,我在其中对一个 RDD 应用多个过滤器并最终应用一个操作。

Spark 会多次遍历 RDD 吗?还是同时优化和应用多个过滤器(使用 && 操作)?

最佳答案

RDD 上的每个转换都会创建一个新的 RDD。让我用两个简单的例子来解释:

RDD -> map -> filter -> print

这遍历源 RDD,然后应用映射函数,创建一个 RDD,然后应用过滤器,创建另一个 RDD,最后执行 print 操作。

RDD -> map(我们称之为 RDD-m)-> filter(我们称之为 filter1)-> print

RDD-m -> 过滤(调用 filter2)-> 打印

这两个都是同一个工作的一部分。

这里我们在第一个 map 函数之后创建了一个新的 RDD(称为 RDD-m)。现在我们进行分支,在同一个 RDD-m 上应用两个过滤函数(filter1 和 filter2)。然后我们最终打印出 2 个结果 RDD。所以在这里,看起来像是 RDD-m 在 2 个过滤器函数中被重用,但事实并非如此。

Spark 从 Action 开始,创建一个 DAG 追踪回源 RDD。因此它将为 2 个不同的路径创建 2 个 DAG,并且 RDD-m 将被评估两次。

避免的方法是在RDD-m上使用persist方法来避免重复。

关于scala - spark 是否优化应用于 RDD 的多个过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39681508/

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