2016-11-28 57 views
1

我在做以下问题的测验:处理RDD的阶段数

此代码中有多少个阶段?

val unhcrRDD = sc.textFile("path/to/file/file.csv").map(x=>x.split(",")) 
val country = unhcrRDD.map(x=>(x(0), x(3)) 
country.take(10) 

我假定存在3个阶段(一个当文本文件被读取时,一个当线路之间用逗号分开,并且当字段0和3被选择的一个)。

然而,答案是:

只有一个,即使有更多的RDDs.Data没有家长和RDD之间传输阶段,所以RDDS折叠到一个阶段。

这是什么意思? 你怎么只有一个阶段?

回答

1

新阶段只有在洗牌完成后,也就是说,在执行reduceByKey或在几个RDD之间进行加入时。

在你的情况下,你只有map,它可以在节点之间不混洗数据的情况下运行。

您可以输入星火Web UI中,有你有像所有阶段 Spark DAG visualisation