Spark会执行单个操作所需的持久性吗?

时间:2017-02-08 04:28:13

标签: apache-spark

我的工作流程如下:

rdd1 = sc.textFile(input);
rdd2 = rdd1.filter(filterfunc1);
rdd3 = rdd1.filter(fiterfunc2);
rdd4 = rdd2.map(mapptrans1);
rdd5 = rdd3.map(maptrans2);
rdd6 = rdd4.union(rdd5);
rdd6.foreach(some transformation);

1.我是否需要坚持使用rdd1?或者它不是必需的,因为在rdd6只有一个动作只能创建一个作业,而且在一个作业中不需要持久化?

2.如果rdd2上的转换是reduceByKey而不是map,那该怎么办?从单一工作开始,这又是否同样不需要坚持。

1 个答案:

答案 0 :(得分:0)

如果您计划在多个操作中重复使用RDD,则只需要保留。在单个动作中,spark可以很好地决定何时重新计算以及何时重用。

您可以在UI中看到DAG,以确保rdd1仅从文件中读取一次。