2014-05-12 71 views
0

在/core/src/main/scala/org/apache/spark/SparkContext.scala的火花文件中,有以下是rdd:RDD [(K,V)]中的RDD [(K,V)]類型?

implicit def rddToPairRDDFunctions[K, V](rdd: RDD[(K, V)]) 
     (implicit kt: ClassTag[K], vt: ClassTag[V], ord: Ordering[K] = null) = { 
    new PairRDDFunctions(rdd) 
    } 

我認爲RDD [(K,V)]爲類型rdd的旁白。但是,我們如何定義類似RDD [(K,V)]? 下面無法編譯

abstract class RDD[(K, V)] 

但是下面可能。

abstract class RDD[K, V] 

那麼什麼是RDD [(K,V)]

回答

9

[(K, V)]是K和V的元組,組合作爲單個參數

enter image description here

[K, V]是兩個不同類型的參數

enter image description here

而且​​只有一個接受單一類型參數

4

(K, V)意味着Tuple2[K, V],所以rdd: RDD[(K, V)]意味着rdd: RDD[Tuple2[K, V]]。類型RDD應該有一個單一的類型參數。

class RDD[T] 
new RDD[(Int, String)] // new RDD[Tuple2[Int, String]] 
相關問題