Kat*_*ler 0 apache-spark pyspark
所以,我知道Spark是一个懒惰的执行者.例如,如果我打电话
post = pre.filter(lambda x: some_condition(x)).map(lambda x: do_something(x))
我知道它不会立即执行.
但是当我打电话时,上面的代码会发生什么post.count()?我想象中的滤波将被迫执行,因为pre和post可能不会有相同的行数,因为有一个filter条件存在.但是,map是1对1的关系,因此计数不会受其影响.这个map命令会在这里执行count()吗?
跟进:当我想强制执行map语句时(假设count()不起作用),我可以调用哪些强制执行?我宁愿不必使用saveAsTextFile().
count除非可以从缓存中获取某些阶段,否则将执行谱系中的所有转换.这意味着每次转换都将至少执行一次,因为您不依赖于某种由此触发的副作用,some_condition或者do_something它应该可以正常工作.
| 归档时间: |
|
| 查看次数: |
363 次 |
| 最近记录: |