1.
import org.apache.spark.{HashPartitioner, SparkConf, SparkContext}
import org.apache.spark.rdd.RDD//kv类型算子
//PartitionBy:指定分区器来对上游的数据进行分区
object _01PartitonByDemo {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setMaster("local").setAppName("getRDD")
val sc = new SparkContext(conf)//注意 RDD必须是对偶类型才会调出PartitonBy方法
//因为RDD隐式装换成立PairRDD
val rdd: RDD[(String, Int)] = sc.makeRDD(List(("1", 2), ("2", 3), ("4", 4), ("3", 0)), 2)
//自己指定分区器 3个 生成3个分区
val result: RDD[(String, Int)] = rdd.partitionBy(new HashPartitioner(3))
result.collect().foreach(println)
//可以生成文件查看数据所在分区
result.saveAsTextFile("_01")
}
}//(3,0)
//(1,2)
//(4,4)
//
Spark KV类型算子案例详解一
最新推荐文章于 2023-09-26 13:23:08 发布
本文详细讲解了Spark中的KV类型算子,包括PartitionBy实现数据分区,ReduceByKey进行键值分组并规约操作,GroupByKey进行键分组,以及Aggregate和FoldByKey在分区内和分区间的数据聚合方法。示例代码清晰展示了每个算子的用法和效果。
摘要由CSDN通过智能技术生成