在 Scala 中,parallelize 是一个用于创建并行集合的方法。它接受一个集合作为输入,将其转换为一个并行集合,并将其存储在 Spark 集群中的分布式内存中。这个并行集合可以用于并行计算。
parallelize 方法的用法如下:
val rdd = sc.parallelize(Seq(1, 2, 3, 4, 5))
在这个例子中,我们将一个包含整数 1 到 5 的序列作为输入参数传递给 parallelize 方法,该方法返回一个 RDD(弹性分布式数据集)对象。
使用 parallelize 方法创建的 RDD 可以用于各种 Spark 操作,例如 map、reduce、filter、groupByKey、aggregate 等。
val rdd = sc.parallelize(Seq(1, 2, 3, 4, 5))
val result = rdd.map(_ * 2).reduce(_ + _)
println(result)
在这个例子中,我们首先使用 parallelize 方法创建一个包含整数 1 到 5 的 RDD,然后使用 map 方法将 RDD 中的每个元素乘以 2,最后使用 reduce 方法将结果相加并打印出来。
使用 parallelize 方法创建的 RDD 默认会被分成多个分区,以实现并行计算。可以使用 getNumPartitions 方法获取 RDD 的分区数,也可以使用 repartition 方法重新分区。
val rdd = sc.parallelize(Seq(1, 2, 3, 4, 5), 3)
println(rdd.getNumPartitions) // 输出结果为 3
val rdd2 = rdd.repartition(5)
println(rdd2.getNumPartitions) // 输出结果为 5
在这个例子中,我们使用 parallelize 方法创建一个包含整数 1 到 5 的 RDD,并指定将其分为 3 个分区。然后我们使用 getNumPartitions 方法获取 RDD 的分区数,并使用 repartition 方法将其重新分为 5 个分区。