2 回答

TA貢獻1946條經驗 獲得超4個贊
Spark主要提供了兩種函數:parallelize和makeRDD:
1)parallelize的聲明:
def parallelize[T: ClassTag](
seq: Seq[T],
numSlices: Int = defaultParallelism): RDD[T]
2)makeRDD的聲明:
def makeRDD[T: ClassTag](
seq: Seq[T],
numSlices: Int = defaultParallelism): RDD[T]
def makeRDD[T: ClassTag](seq: Seq[(T, Seq[String])]): RDD[T]
3)區別:
A)makeRDD函數比parallelize函數多提供了數據的位置信息。
B)兩者的返回值都是ParallelCollectionRDD,但parallelize函數可以自己指定分區的數量,而makeRDD函數固定為seq參數的size大小。

TA貢獻1816條經驗 獲得超4個贊
一樣的,你看SparkContext的API里面這么說的:
def makeRDD[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T]
Distribute a local Scala collection to form an RDD.
This method is identical to parallelize.
- 2 回答
- 0 關注
- 1409 瀏覽
添加回答
舉報