美文网首页Spark
Spark从入门到精通61:Dataset的action操作

Spark从入门到精通61:Dataset的action操作

作者: 勇于自信 | 来源:发表于2020-07-13 16:03 被阅读0次

    action操作有:collect、count、first、foreach、reduce、show、take
    下面详细介绍其作用:
    collect:将分布式存储在集群上的分布式数据集(比如dataset),中的所有数据都获取到driver端来
    count:对dataset中的记录数进行统计个数的操作
    first:获取数据集中的第一条数据
    foreach:遍历数据集中的每一条数据,对数据进行操作,这个跟collect不同,collect是将数据获取到driver端进行操作,foreach是将计算操作推到集群上去分布式执行
    reduce:对数据集中的所有数据进行归约的操作,多条变成一条,用reduce来实现数据集的个数的统计
    show:默认将dataset数据打印前20条
    take:从数据集中获取指定条数
    代码操作案例

    package session
    
    import org.apache.spark.sql.SparkSession
    
    object ActionOperation {
      def main(args: Array[String]): Unit = {
        val spark = SparkSession.builder()
          .appName(ActionOperation.getClass.getName)
          .master("local")
          .config("spark.sql.warehouse.dir","d:/spark-warehouse")
          .getOrCreate()
        import spark.implicits._
        val employee = spark.read.json("data\\depart\\employee.json")
        employee.collect().foreach(println)
        println(employee.count())
        println(employee.first())
        employee.foreach{println(_)}
        println(employee.map(employee=>1).reduce(_+_))
        employee.show()
        employee.take(3).foreach(println(_))
      }
    
    }
    
    

    输出结果:

    第1个action输出:
    [25,1,male,Leo,20000]
    [30,2,female,Marry,25000]
    [35,1,male,Jack,15000]
    [42,3,male,Tom,18000]
    [21,3,female,Kattie,21000]
    [30,2,female,Jen,28000]
    [19,2,female,Jen,8000]
    第2个action输出:
    7
    第3个action输出:
    [25,1,male,Leo,20000]
    第4个action输出:
    [25,1,male,Leo,20000]
    [30,2,female,Marry,25000]
    [35,1,male,Jack,15000]
    [42,3,male,Tom,18000]
    [21,3,female,Kattie,21000]
    [30,2,female,Jen,28000]
    [19,2,female,Jen,8000]
    第5个action输出:
    7
    第6个action输出:
    +---+-----+------+------+------+
    |age|depId|gender|  name|salary|
    +---+-----+------+------+------+
    | 25|    1|  male|   Leo| 20000|
    | 30|    2|female| Marry| 25000|
    | 35|    1|  male|  Jack| 15000|
    | 42|    3|  male|   Tom| 18000|
    | 21|    3|female|Kattie| 21000|
    | 30|    2|female|   Jen| 28000|
    | 19|    2|female|   Jen|  8000|
    +---+-----+------+------+------+
    第7个action输出:
    [25,1,male,Leo,20000]
    [30,2,female,Marry,25000]
    [35,1,male,Jack,15000]
    

    相关文章

      网友评论

        本文标题:Spark从入门到精通61:Dataset的action操作

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