需求:给数据源的数据首字母相同的分组
package com.atguigu.bigdata.spark.core.operator.transform.test
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object RDD_groupBy_02 {
def main(args: Array[String]): Unit = {
val sparkConf = new SparkConf().setMaster("local[*]").setAppName("Operator")
val sc = new SparkContext(sparkConf)
// TODO 算子 -groupBy - 将数据根据指定的规则进行分组,分区默认不变,但是数据会被打乱重新组合,我们将这样的操作称之为shuffle,
// 极限情况下,数据可能被分在同一个分区中
// 需求:给数据源的数据首字母相同的分组
val rdd = sc.makeRDD(List("Hello", "Spark", "Hello", "Scala"), 2)
val groupRDD: RDD[(Char, Iterable[String])] = rdd.groupBy(
str => {
str.charAt(0)
}
)
groupRDD.collect().foreach(println)
sc.stop()
}
}