Spark 算子:RDD Action -2

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

  • saveAsTextFile(path,codec) 可以指定压缩
    如果 /tmp/ 将会把文件存储到executor 所在的节点上
  • saveAsSequenceFile
  • saveAsObjectFile
  • saveAsHadoopFile
  • saveAsHadoopDataset
  • saveAsNewAPIHadoopFile
  • saveAsNewAPIHadoopDataset
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容