我的代碼:DAG何時在Spark中創建?
scala> val records = List("CHN|2", "CHN|3" , "BNG|2","BNG|65")
records: List[String] = List(CHN|2, CHN|3, BNG|2, BNG|65)
scala> val recordsRDD = sc.parallelize(records)
recordsRDD: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[119] at parallelize at <console>:23
scala> val mapRDD = recordsRDD.map(elem => elem.split("\\|"))
mapRDD: org.apache.spark.rdd.RDD[Array[String]] = MapPartitionsRDD[120] at map at <console>:25
scala> val keyvalueRDD = mapRDD.map(elem => (elem(0),elem(1)))
keyvalueRDD: org.apache.spark.rdd.RDD[(String, String)] = MapPartitionsRDD[121] at map at <console>:27
scala> keyvalueRDD.count
res12: Long = 5
正如你可以看到上面有在3 RDD的。
我的問題是什麼時候DAG被創建和DAG包含什麼?
當我們使用任何轉換創建RDD時,它會被創建嗎?
或
它創建時,我們呼籲現有RDD一個動作,然後引發自動啓動該DAG?
基本上我想知道在創建RDD時內部發生了什麼?
的[在哪裏學習DAG在RDD在幕後是如何工作的?(可能的複製http://stackoverflow.com/questions/25836316/where-to-learn-how-dag-works-under-它包含了分佈式任務所需的所有依賴關係。「 –