猿问

Spark中parallelize函数和makeRDD函数的区别?

Spark中parallelize函数和makeRDD函数的区别


呼唤远方
浏览 1355回答 2
2回答

绝地无双

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大小。

繁华开满天机

一样的,你看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.
随时随地看视频慕课网APP
我要回答