并行集合
并行集合是通过在你的驱动程序中,调用SparkContext的并行方法(parallelize())作用于一个已经存在的集合上,然后被创建。集合的元素被复制,并形成一个分布式的数据集,这个数据集可以被并行操作。例如,这里有如何创建并行集合来处理数字1到5:
val data = Array(1, 2, 3, 4, 5)
val distData = sc.parallelize(data)
一旦被创建,分布式数据集就能被并行操作。例如,我们可以调用distData.reduce((a,b)=> a+b)来对数组元素进行相加。我们随后会描述在分布式数据集上的操作。
对于并行集合,有一个重要的参数,就是要把这个数据集分隔成多少个分区。Spark将会对集群上的每一个分区运行一个任务。经典地,你想让集群的每个CPU运行2-4个分区。通常,Spark会基于集群自动地设置分区数量。然而,你也可以手动设置它,通过指定parallelize方法的第2个参数,(例如 sc.parallelize(data,10))。注意:在代码中的有些地方,使用术语slices(分区的同义詞)来保持向后兼容。