Sun*_*ech 1 scala apache-spark
当我调用 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)
Run Code Online (Sandbox Code Playgroud)
两者有本质的不同。
cities.collect.foreach(println)
Run Code Online (Sandbox Code Playgroud)
首先收集将城市中的所有记录带回驱动程序,然后(因为它是一个数组)打印每一行。这意味着您没有并行性,因为您将所有内容都带给驱动程序。
cities.foreach(println)
Run Code Online (Sandbox Code Playgroud)
另一方面是并行操作。这意味着在城市 RDD 中的每条记录上运行函数 println。这发生在工人身上。如果您使用的是真正的集群(而不是本地主节点),您将不会看到 println 出现在工作线程上。
| 归档时间: |
|
| 查看次数: |
1440 次 |
| 最近记录: |