一、RDD依赖与DAG原理
Spark根据计算逻辑中的 RDD的转换与动作生成 RDD的依赖关系,同时这个计算链也形成了逻辑上的 DAG。
1.1 RDD的转换
e.g.(以wordcount为例)
package spark
import org.apache.spark.{SparkConf,SparkContext}
object WordCount{
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("WordCount").setMaster("local[1]")
val sc = new SparkContext(conf)
val rdd = sc.textFile("hdfs://192.168.182.130:9000/test/word.txt")
val result=rdd.flatMap(_.split("\\s")).map((_, 1)).reduceByKey(_ + _)
result.collect().foreach(println)
println("--------------------------")
println(result.toDebugString)
}
}
"C:\Program Files\Java\jdk1.8.0_231\bin\java.exe" ...
(scala,2)
(hadoop,1)
(python,2)
(word,2)
(hello,2)
(class,1)
(java,1)
------------------------