@IT·互联网大数据,机器学习,人工智能

Spark 算子:RDD Action -2

2016-08-23  本文已影响0人  Codlife

1. count ,first ,take ,collect这几个意思很显眼就不细说了

2. top 排序,降序 取

3.takeOrdered 排序 ,升序

4.reduce,下面是两个典型的例子

  def testReduce(): Unit ={
    val rdd1=sc.makeRDD(1 to 10,2)
    println(rdd1.reduce(_ + _))
    val rdd2 =sc.makeRDD(Array(("a",1),("b",2),("c",3)))
    println(rdd2.reduce((x ,y) => {
      (x._1 + y._1, x._2 + y._2)
      //输出abc 6
    }))
  }

5.forEach

forEach只会在每个executor 中执行,而不是driver 端,如果在driver 需要用到某些值,可以使用 take 取值
结合 DoubleAccumulator 使用 简直完美

  def testForeach(): Unit ={
    var cnt=sc.doubleAccumulator("0")
    var rdd1= sc.makeRDD(1 to 10,2)
    println(rdd1.foreach( x=> cnt.add(x)))
    println(cnt.value)
  }

6. saveAs

上一篇 下一篇

猜你喜欢

热点阅读