Spark 2.0常用聚合函数 以及其他常用函数

本文通过具体示例展示了如何使用Apache Spark的SQL模块中的聚合函数,如avg、sum、max、min、count和countDistinct进行数据处理。通过连接employee和department两个数据集,并按部门分组,计算每个部门的平均工资、总工资、最高工资、最低工资以及员工数量和去重后的员工数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官网聚合函数api
http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.functions$

avg sum max min count countDistinct

package com.scala.spark.function

import org.apache.spark.sql.SparkSession

object AggregateFunctionAndOtherFunction {
    def main(args: Array[String]): Unit = {
        val spark = SparkSession.builder().appName("untyped").master("local").getOrCreate()
        import spark.implicits._
        import org.apache.spark.sql.functions._
        val employee=spark.read.json("employee")
        val department=spark.read.json("department")

//        employee.join(department,$"depId"===$"id")
//        .groupBy(department("name"))
//            .agg(round(avg(employee("salary")),2).alias("平均工资"),sum(employee("salary")).alias("总工资")
//            ,min(employee("salary")).alias("最低工资"),count(employee("name")).alias("多少个")
//                ,countDistinct(employee("name")).alias("去重个数")
//            )
//            .show()
        employee
            .join(department, $"depId" === $"id")
            .groupBy(department("name"))
            .agg(avg(employee("salary")), sum(employee("salary")), max(employee("salary")), min(employee("salary")), count(employee("name")), countDistinct(employee("name")))
            .show()




    }


}

在这里插入图片描述


        employee.select(employee("name"),current_date(),current_timestamp(),rand(),concat(employee("name"),employee("age")),concat_ws("//",employee("name"),employee("age")))
            .show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值