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

代码:

运行结果:

相关推荐
TDengine (老段)2 小时前
TDengine 线程模型 — 网络、调度、执行
大数据·数据库·物联网·制造·时序数据库·tdengine·涛思数据
智购科技自动贩卖机4 小时前
自动售货机嵌入式状态机设计实战:从45个事件源到层次型状态机的工程重构
大数据·人工智能·stm32·物联网·重构·硬件架构
乐迪信息4 小时前
智慧港口船舶AI算法实现在线状态监测
大数据·人工智能·深度学习·算法·计算机视觉
Raas1004 小时前
MAI Gateway(魔芋企业级AI网关)对比分析:AI网关和API网关区别?企业级能力差距一览
大数据·人工智能·数据挖掘·mai gateway·企业级产品
Neighbor_OldY5 小时前
云上安全配置审计与误配置修复实战:从安全组、OSS、RAM到数据库的全栈排查复盘
大数据·运维·安全·云计算
工业甲酰苯胺6 小时前
AI低代码破局:制造业数智转型落地实战
大数据·人工智能·低代码·制造
大大大大晴天7 小时前
每天认识一个组件:流式存储Apache Fluss
大数据
熊野君7 小时前
第 4 章 技术产品经理核心能力模型
大数据·人工智能·产品经理
财复视界7 小时前
光智科技从“光学元件”到“稀散金属材料平台”的进化逻辑
大数据·人工智能·科技
牛企老板俱乐部8 小时前
2026年珠海精锐增材智造金属小批量交付可提供SGS与RoHS材质证明
大数据