美文网首页
Spark-RDD行动算子

Spark-RDD行动算子

作者: 布莱安托 | 来源:发表于2020-07-06 19:58 被阅读0次

    reduce(func)

    • 说明

      通过func函数聚合RDD中所有元素,先聚合分区内元素,再聚合分区间元素

    • 示例

      val rdd = sc.parallelize(1 to 10, 2)
      val reduceRdd = rdd.reduce(_ + _)
      reduceRdd.collect.foreach(println)
      
    • 结果

    55

    collect

    • 说明

      将RDD中全部数据以数据形式返回

    • 示例

      val rdd = sc.parallelize(1 to 10)
      println(rdd.collect)
      
    • 结果

    Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    count

    • 说明

      返回RDD中元素个数

    • 示例

      val rdd = sc.parallelize(1 to 10)
      println(rdd.count)
      
    • 结果

    10

    first

    • 说明

      返回RDD中第一个元素

    • 示例

      val rdd = sc.parallelize(1 to 10)
      println(rdd.first)
      
    • 结果

    1

    take(n)

    • 说明

      返回RDD中前n和元素

    • 示例

      val rdd = sc.parallelize(1 to 10)
      println(rdd.take(3))
      
    • 结果

    Array(1, 2, 3)

    takeOrdered(n)

    • 说明

      返回RDD排序后的前n个元素

    • 示例

      val rdd = sc.parallelize(Array(2, 3, 4, 6, 1))
      println(rdd.takeOrdered(3))
      
    • 结果

    Array(1, 2, 3)

    aggregate(zero)(seqOp, combOp)

    • 说明

      通过seqOp将分区内元素与初始值zero进行聚合,然后通过combOp将分区聚合结果与初始值zero进行聚合

    • 示例

      val rdd = sc.parallelize(1 to 10, 2)
      val aggregateRdd = rdd.aggregate(0)(_ + _, _ + _)
      aggregateRdd.collect.foreach(println)
      
    • 结果

    55

    fold(zero)(func)

    • 说明

      与aggregate功能相似,seqOp与combOp为同一函数

    • 示例

      val rdd = sc.parallelize(1 to 10, 2)
      val foldRdd = rdd.fold(0)(_ + _, _ + _)
      foldRdd.collect.foreach(println)
      
    • 结果

    55

    saveAsTextFile(path)&saveAsSequenceFile(path)&saveAsObjectFile(path)

    • 说明

      将RDD保存为文本文件、序列文件或对象文件至指定路径

    • 示例

      val rdd = sc.parallelize(1 to 10, 2)
      rdd.saveAsTextFile("./files")
      rdd.saveAsSequenceFile("./files")
      rdd.saveAsObjectFile("./files")
      
    • 结果

    countByKey

    • 说明

      统计每个key的元素个数

    • 示例

      val rdd = sc.parallelize(Array(("a", 3), ("a", 2), ("c", 4), ("b", 3), ("c", 6), ("c", 8)))
      val countRdd = rdd.countByKey()
      countRdd.collect.foreach(println)
      
    • 结果

    ("a", 2)

    ("b", 1)

    ("c", 3)

    foreach(func)

    • 说明

      遍历数据集,对每个元素执行指定函数

    • 示例

      val rdd = sc.parallelize(1 to 5)
      rdd.foreach(println)
      
    • 结果

    1

    2

    3

    4

    5

    相关文章

      网友评论

          本文标题:Spark-RDD行动算子

          本文链接:https://www.haomeiwen.com/subject/dwbgqktx.html