可以在您的 driver program(驱动程序)中已存在的集合上通过调用 SparkContext 的
parallelize
方法来创建并行集合。该集合的元素从一个可以并行操作的 distributed dataset(分布式数据集)中复制到另一个 dataset(数据集)中去。例如,这里是一个如何去创建一个保存数字 1 ~ 5 的并行集合。
val data = Array(1, 2, 3, 4, 5) val distData = sc.parallelize(data)
在创建后,该 distributed dataset(分布式数据集)(distData)可以并行的执行操作。例如,我们可以调用 distData.reduce((a, b) => a + b)
来合计数组中的元素。后面我们将介绍 distributed dataset(分布式数据集)上的操作。
并行集合中一个很重要参数是 partitions(分区)的数量,它可用来切割 dataset(数据集)。Spark 将在集群中的每一个分区上运行一个任务。通常您希望群集中的每一个 CPU 计算 2-4 个分区。一般情况下,Spark 会尝试根据您的群集情况来自动的设置的分区的数量。当然,您也可以将分区数作为第二个参数传递到 parallelize (e.g. sc.parallelize(data, 10)) 方法中来手动的设置它。
注意 :
在代码中有些地方使用了 term slices(词片)(分区的同义词)以保持向后的兼容性。