val list = List(1,2,3) var rdd = sc.parallelize(list) rdd.partitions.size
通过调用SparkContext的
parallelize
方法,在一个已经存在的Scala集合上创建的(一个Seq对象)。集合的对象将会被拷贝,创建出一个可以被并行操作的分布式数据集。
一旦分布式数据集(distData)被创建好,它们将可以被并行操作。
例如,我们可以调用distData.reduce(lambda a, b: a + b)来将数组的元素相加。
并行集合的一个重要参数是slices,表示数据集切分的份数。
Spark将会在集群上为每一份数据起一个任务。
典型地,你可以在集群的每个CPU上分布2-4个slices.
一般来说,Spark会尝试根据集群的状况,来自动设定slices的数目
然而,你也可以通过传递给parallelize的第二个参数来进行手动设置。
(例如:sc.parallelize(data,10)).