count() 是否会导致 map() 代码在 Spark 中执行?

Does count() cause map() code to execute in Spark?

所以,我知道Spark是一个懒惰的执行者。 例如,如果我调用

post = pre.filter(lambda x: some_condition(x)).map(lambda x: do_something(x))

我知道它不会立即执行。

但是当我调用post.count()时上面的代码会发生什么?我想过滤将被强制执行,因为 prepost 可能不会有相同的行数,因为那里有 filter 条件。但是,map 是一对一的关系,因此计数不会受到影响。鉴于 count()?

,是否会在此处执行 map 命令

跟进:当我想强制执行map语句时(假设count()不行),我可以调用什么来强制执行?我宁愿不必使用 saveAsTextFile().

count 将执行谱系中的所有转换,除非可以从缓存中获取某些阶段。这意味着每个转换都将至少执行一次,因为您不依赖于 some_conditiondo_something 触发的某种副作用,它应该可以正常工作。