Apache spark 为什么在主方法之外创建的方法不能在RDD内部运行?

Apache spark 为什么在主方法之外创建的方法不能在RDD内部运行?,apache-spark,Apache Spark,在这种比较中,xRDD不包含任何内容,而xIterator包含我想要的内容。func1是在main方法之外建立的。 那么为什么会出现phoenomenon呢?我如何解决这个问题? 谢谢你的提示 为什么你认为“xRDD不包含任何内容”?你的代码中的dest是什么?我已经调试了代码,发现xRDD不包含任何内容。func1处理一个e.dest字符串并返回一个新字符串。 singleRDD:RDD[(String)] val xRDD = singleRDD.map(e=>{ func1(e.

在这种比较中,xRDD不包含任何内容,而xIterator包含我想要的内容。func1是在main方法之外建立的。 那么为什么会出现phoenomenon呢?我如何解决这个问题?
谢谢你的提示

为什么你认为“xRDD不包含任何内容”?你的代码中的
dest
是什么?我已经调试了代码,发现xRDD不包含任何内容。func1处理一个e.dest字符串并返回一个新字符串。
singleRDD:RDD[(String)]
val xRDD = singleRDD.map(e=>{
  func1(e.dest)
})
val xIterator = singleRDD.collectAsMap().map(e => {
  func1(e.dest)
})
def func1(str:String):String = {
   //some logic
   var str = "what I want"
   str
}