在 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 個分區。