Apache Spark

时间:2018-05-28 09:46:23

标签: apache-spark pyspark bigdata

在Apache Spark中,我知道当我使用一些转换函数时,所有函数都存储为DAG,当我调用一个动作时,Spark会从该DAG运行所有必需的转换函数,直到Action函数。 所以,假设我有

  • 步骤1。 3个转换功能
  • 第二步。 1动作
  • 步骤3。 4个转换函数,它使用上述动作的输出。
  • 步骤4。 1动作

所以,我的问题是在第2步调用第一个动作之后,dag是否被删除,当第二个动作被调用时,新DAG是从步骤3创建的,还是从步骤1创建的新DAG?

1 个答案:

答案 0 :(得分:1)

Spark使用弹性分布式数据集(RDD),它代表一组数据。 Spark可以将其存储在分布式内存中。正如您所提到的,RDD是在DAG中构建的。

在你的情况下:

  • 在第一个Action中,计算DAG的计算结果,并生成RDD。
  • 在步骤3中,这个新创建的RDD用作新DAG的输入。
  • 在步骤4中,计算此DAG,并生成最终的RDD。