作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我调用 rdd.collect.foreach(println) 时,我从 csv 文件创建了一个 RDD,它按原样返回文件,但 rdd.foreach(println) 返回合并的输出。 RDD上有两个部分。 val sc = new SparkContext("local[*]", "WordCount")
val cities = sc.textFile("C:/Users/PSKUMARBEHL/Desktop/us_cities.csv")
cities.collect.foreach(println)
cities.foreach(println)
println(cities.partitions.length)
最佳答案
两者根本不同。
cities.collect.foreach(println)
首先执行 collect,它将城市中的所有记录带回给驱动程序,然后(因为它是一个数组)打印每一行。这意味着您没有并行性,因为您将所有内容都交给了驱动程序。
cities.foreach(println)
另一方面是并行操作。这意味着在 cities RDD 中的每条记录上运行函数 println。这发生在 worker 身上。如果您使用的是真实集群(而不是本地主集群),您将不会看到 worker 上出现的 println。
关于scala - 调用 someRDD.collect.foreach(println) 和 someRDD.foreach(println) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42886734/
当我调用 rdd.collect.foreach(println) 时,我从 csv 文件创建了一个 RDD,它按原样返回文件,但 rdd.foreach(println) 返回合并的输出。 RDD上
当我调用 rdd.collect.foreach(println) 时,我从 csv 文件创建了一个 RDD,它按原样返回文件,但 rdd.foreach(println) 返回合并的输出。 RDD上
我是一名优秀的程序员,十分优秀!