关于spark map(fun1).collect.foreach(println) 与spark.map(func1).foreach(println)的疑问

ryanlunar 2017-04-26 09:14:19
我从分布式表格系统中读取数据放入rdd1中[T,U],然后调用map只获取U,然后一个调用collect一个不调用collect,分别打印U中的某个成员变量row,打出的结果竟然不一样。
case1 输出数据完全与分布式表格系统中数据一致,
case2 虽然数据量是一样的,但是输出的时候出现了较多的重复的数据。

具体场景如下:
case 1
var rddTmp = rdd1.map(r => (r._2))

println("=====================>" + rddTmp.count() + "<========================")
rddTmp.foreach(
(result: Result) => {
var rStr = new String(result.getRow())
println(rStr)
}
)
执行结果片段
row148
row166
row169
row180
row183
row211
row212
row231
row244
row247
row248
row252
row258
case 2
var rddTmp = rdd1.map(r => (r._2)).collect()

println("=====================>" + rddTmp.length + "<========================")
rddTmp.foreach(
(result: Result) => {
var rStr = new String(result.getRow())
println(rStr)
}
)

执行结果片段
row258
row258
row258
row258
row258
row258
row258
row258
row258
row258
row258
row258
row258
...全文
266 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmmc_a 2017-05-05
  • 打赏
  • 举报
回复
你确定你的数据源一样吗?

1,261

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧