2 回答

TA貢獻(xiàn)1946條經(jīng)驗 獲得超4個贊
Spark主要提供了兩種函數(shù):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)區(qū)別:
A)makeRDD函數(shù)比parallelize函數(shù)多提供了數(shù)據(jù)的位置信息。
B)兩者的返回值都是ParallelCollectionRDD,但parallelize函數(shù)可以自己指定分區(qū)的數(shù)量,而makeRDD函數(shù)固定為seq參數(shù)的size大小。

TA貢獻(xiàn)1816條經(jīng)驗 獲得超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 關(guān)注
- 1405 瀏覽
添加回答
舉報