Spark-SQL核心编程(二)

  • Spark-SQL 开发:

借助 IDEA 开发 Spark-SQL,创建子模块并添加org.apache.spark:spark-sql_2.12:3.0.0依赖。创建SparkConf(设置运行模式和应用名)和SparkSessio(作为 Spark 入口,可读取数据、执行 SQL 查询)配置上下文环境。

RDD、DataFrame、DataSet 转换:三者可相互转换。RDD 可通过toDF转为DataFrame,指定字段名;DataFrame用as转为DataSet,需有对应的样例类。反向转换时,DataSet用toDF转回DataFrame,DataFrame通过rdd获取 RDD,转换过程能发挥不同数据结构优势。

自定义函数

运行代码:

运行结果如下:

  • UDF(用户自定义函数):

可注册自定义函数处理数据。在 Spark 环境中,注册函数如addName后,可在 SQL 查询中调用,对指定字段按自定义逻辑处理。

  • UDAF(用户自定义聚合函数):

用于数据聚合计算,有多种实现方式(RDD与强弱UDAF)。RDD 方式通过映射和规约操作计算;弱类型 UDAF 继承UserDefinedAggregateFunction,自定义输入、缓冲区和返回值的 Schema 及相关操作方法;强类型 UDAF 继承Aggregator,利用样例类和类型系统,实现更简洁安全 。

实验需求:计算平均工资

  1. 实现方式一:RDD
  1. 实现方式二:弱类型UDAF

代码:

运行结果:

相关推荐
武子康6 小时前
Java-174 FastFDS 从单机到分布式文件存储:实战与架构取舍
java·大数据·分布式·性能优化·系统架构·dfs·fastdfs
aitoolhub6 小时前
重塑机器人未来:空间智能驱动产业智能化升级
大数据·人工智能·深度学习·机器学习·机器人·aigc
ZhengEnCi7 小时前
S2C-SQL DELETE 删除数据完全指南-99%的人忘记WHERE子句,SQL高手却这样写:从基础语法到多表关联的数据删除利器
sql
1***Q7847 小时前
SQL Future
数据库·sql
武子康7 小时前
大数据-154 Apache Druid 架构与组件职责全解析 版本架构:Coordinator/Overlord/Historical 实战
大数据·后端·apache
TDengine (老段)8 小时前
TDengine 字符串函数 POSITION 用户手册
android·java·大数据·数据库·物联网·时序数据库·tdengine
YangYang9YangYan8 小时前
中专生学历提升与职业发展指南
大数据·人工智能·学习·数据分析
wudl55668 小时前
Flink20 SQL 窗口函数概述
服务器·数据库·sql
keep__go12 小时前
spark 单机安装
大数据·运维·分布式·spark
君不见,青丝成雪14 小时前
网关整合验签
大数据·数据结构·docker·微服务·系统架构