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 关注
- 1354 浏览
添加回答
举报