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()
时上面的代码会发生什么?我想过滤将被强制执行,因为 pre
和 post
可能不会有相同的行数,因为那里有 filter
条件。但是,map
是一对一的关系,因此计数不会受到影响。鉴于 count()
?
,是否会在此处执行 map
命令
跟进:当我想强制执行map
语句时(假设count()
不行),我可以调用什么来强制执行?我宁愿不必使用 saveAsTextFile()
.
count
将执行谱系中的所有转换,除非可以从缓存中获取某些阶段。这意味着每个转换都将至少执行一次,因为您不依赖于 some_condition
或 do_something
触发的某种副作用,它应该可以正常工作。
所以,我知道Spark是一个懒惰的执行者。 例如,如果我调用
post = pre.filter(lambda x: some_condition(x)).map(lambda x: do_something(x))
我知道它不会立即执行。
但是当我调用post.count()
时上面的代码会发生什么?我想过滤将被强制执行,因为 pre
和 post
可能不会有相同的行数,因为那里有 filter
条件。但是,map
是一对一的关系,因此计数不会受到影响。鉴于 count()
?
map
命令
跟进:当我想强制执行map
语句时(假设count()
不行),我可以调用什么来强制执行?我宁愿不必使用 saveAsTextFile()
.
count
将执行谱系中的所有转换,除非可以从缓存中获取某些阶段。这意味着每个转换都将至少执行一次,因为您不依赖于 some_condition
或 do_something
触发的某种副作用,它应该可以正常工作。