簡體   English   中英

在Scala Spark中嵌套RDD

[英]Nesting of RDD's in Scala Spark

引用這個問題: 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上發生了嵌套動作?

在鏈接的問題中, d.filter(...)返回一個RDD,所以類型為

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

RDD[RDD[String]] 這是不允許的,但在您的代碼中不會發生。 如果我理解答案是正確的,即使你最終沒有得到RDD[RDD[SomeType]] ,也不能在map內部引用d或其他RDD[RDD[SomeType]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM