zoukankan      html  css  js  c++  java
  • PairRDD中算子reduceByKey图解

    reduceByKey

    函数原型:

    def reduceByKey(func: (V, V) => V): RDD[(K, V)]

    def reduceByKey(func: (V, V) => V, numPartitions: Int): RDD[(K, V)]

    def reduceByKey(partitioner: Partitioner, func: (V, V) => V): RDD[(K, V)]

    作用:

    按照func的映射关系,将两个V型的值映射到相同类型的V值上去。

    例子:

    scala> var rdd1 = sc.makeRDD(Array(("A",0),("A",2),("B",1),("B",2),("C",1)))
    rdd1: org.apache.spark.rdd.RDD[(String, Int)] = ParallelCollectionRDD[0] at makeRDD at <console>:27

    scala> rdd1.partitions.size
    res0: Int = 48

    scala> var rdd2 = rdd1.reduceByKey((x,y) => x + y)
    rdd2: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[1] at reduceByKey at <console>:29

    scala> rdd2.collect
    res1: Array[(String, Int)] = Array((A,2), (B,3), (C,1))

    scala> rdd2.partitions.size
    res2: Int = 48

    scala> var rdd2 = rdd1.reduceByKey(new org.apache.spark.HashPartitioner(2),(x,y) => x + y)
    rdd2: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[2] at reduceByKey at <console>:29

    scala> rdd2.collect
    res3: Array[(String, Int)] = Array((B,3), (A,2), (C,1))

    scala> rdd2.partitions.size
    res4: Int = 2

  • 相关阅读:
    SQL盲注攻击的简单介绍
    xss编码小结
    XssEncode
    xss payload
    2014年八大信息安全峰会演讲
    xss bypass
    移动APP安全在渗透测试中的应用
    WAF实现扫描器识别
    thinkphp的系统变量
    thinkphp AOP(面向切面编程)钩子和行为
  • 原文地址:https://www.cnblogs.com/seaspring/p/5722036.html
Copyright © 2011-2022 走看看