Spark KV类型算子案例详解一

本文详细讲解了Spark中的KV类型算子,包括PartitionBy实现数据分区,ReduceByKey进行键值分组并规约操作,GroupByKey进行键分组,以及Aggregate和FoldByKey在分区内和分区间的数据聚合方法。示例代码清晰展示了每个算子的用法和效果。
摘要由CSDN通过智能技术生成

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)
//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值