3

この質問を参照してください: Scala Spark の NullPointerException は、コレクション型が原因のようです?

回答には、「Spark は RDD のネストをサポートしていません (同じ問題の別の発生については、 https: //stackoverflow.com/a/14130534/590203 を参照してください)。そのため、他の RDD 内の RDD に対して変換またはアクションを実行することはできません。オペレーション。"

このコード:

val x = sc.parallelize(List(1 , 2, 3))

def fun1(n : Int) = {
    fun2(n)
}

def fun2(n: Int) = {
    n + 1
}

x.map(v => fun1(v)).take(1)

版画 :

Array[Int] = Array(2)

正解です。

しかし、これは「他のRDD操作内のRDDで変換またはアクションを実行できない」ことに同意しませんか? RDD でネストされたアクションが発生しているので?

4

1 に答える 1

2

いいえ。リンクされた質問d.filter(...)では RDD が返されるため、

d.distinct().map(x => d.filter(_.equals(x)))

ですRDD[RDD[String]]。これは許可されていませんが、コードでは発生しません。私が答えを正しく理解していれば、最後に到達しなくても、d内部の他のRDDを参照することはできません。mapRDD[RDD[SomeType]]

于 2014-05-22T21:24:07.090 に答える