【问题标题】:Spark does persistence required for single action?Spark 是否需要单个操作的持久性?
【发布时间】:2017-02-08 13:17:09
【问题描述】:

我的工作流程如下:

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 怎么办?是否会再次发生同样的事情,因为单项工作不需要持续存在。

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    仅当您计划在多个操作中重用 RDD 时,您才需要坚持。在单个操作中,spark 可以很好地决定何时重新计算以及何时重用。

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

    【讨论】:

      猜你喜欢
      • 2010-12-17
      • 2011-10-26
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多