我有一个像这样的代码,我想在JavaRDD而不是RDD上工作。所以,我在这里进行转换。我想知道这种转换对性能的影响,特别是当我处理GB数据时。
jPanel
这是广泛的转变还是缩小? JavaRDD和RDD有什么区别?
答案 0 :(得分:13)
没有明显的性能损失 - JavaRDD
是RDD
的简单包装,只是为了使Java代码的调用更方便。它将原始RDD
作为其成员,并在任何方法调用上调用该成员的方法,例如(来自JavaRDD.scala):
def cache(): JavaRDD[T] = wrapRDD(rdd.cache())
wrapRDD
归结为类似new JavaRDD[T](rdd)
的内容,因此唯一的性能损失是为每个方法调用创建一个瘦Java对象,但这完全可以忽略不计,因为它不是在RDD中按元素完成,但对整个对象执行一次。