我有了的RDD
明确的返回类型的斯卡拉函数返回:做什么,如果没有在Scala的功能
def myfunction(x:Int):RDD = {
if (x==1) {
formRDD()
} else {
}
}
我不知道该怎么做别的,如果我不想要形成一个空的RDD。
我有了的RDD
明确的返回类型的斯卡拉函数返回:做什么,如果没有在Scala的功能
def myfunction(x:Int):RDD = {
if (x==1) {
formRDD()
} else {
}
}
我不知道该怎么做别的,如果我不想要形成一个空的RDD。
实际上返回一个空的RDD是一个有效的解决方案。当封闭类型是一个集合时,我不喜欢返回Option。 “空”在集合中完美定义,因此Option是多余的。
// assuming you have sc in scope
def myfunction(x:Int): RDD[Int] =
if (x == 1) formRDD() else sc.emptyRDD[Int]
如果你不得不回到一个定期收集,你会同样做到这一点:
def myfunction(x:Int): Seq[Int] =
if (x == 1) Seq(1,2,3) else Seq.empty[Int]
写def myfunction(x:Int): Option[Seq[Int]] = ...
将是一个有点浪费。
恕我直言,你应该返回一个Option
,以便你清楚地表明这种方法可能没有RDD
返回。在调用此方法的方法中,您需要照顾None
的情况,可能是.getOrElse(RDD.empty)
。
虽然有些人可能会说这种方法可能是浪费的,但这是一个关注点分离的问题。当然,如果你正在做一个10行的脚本,你不需要担心返回一个Option
,你可以简单地返回空RDD
注:我注意到熟悉
RDD
,所以我不不知道如何生成一个空的
如果你想在这里不是很相关。想象一下,如果你想返回一个字符串,而函数被声明为返回RDD ......那么呢? – Dima