【发布时间】:2016-11-30 11:53:50
【问题描述】:
我正在使用 spark rdd。我必须对该rdd的每个元素应用一个函数。当我调用rdd.map(x=>function(x)) 时,代码没有给出想要的输出,但是当我调用rdd.collect().foreach(x=>function(x)) 时,代码工作正常。但是collect() 的问题在于它将数据带入内存,这使得大容量数据变得困难。如何在 rdd 的每个元素上调用这个函数?
【问题讨论】:
-
“代码没有给出想要的输出”是什么意思?它会抛出错误吗?它会给出错误的结果吗?什么?
-
你在 rdd.map(x=>function(x)) 之后有没有调用任何动作?
-
colRDD5.map(x=>println(x)) 没有给出任何结果,而 colRDD5.collect().foreach(x=>println(x)) 打印每个元素
-
@RaviRanjan 那是因为转换是延迟执行的,你必须做一些动作来执行转换 - 即计数,收集
标签: function apache-spark rdd