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

代码:

运行结果:

相关推荐
天远数科34 分钟前
Golang并发实战:高效对接天远API实现海量用户画像构建
大数据·api
expect7g34 分钟前
Paimon源码解读 -- Compaction-2.KeyValueFileWriterFactory
大数据·后端·flink
第二只羽毛44 分钟前
C++ 高性能编程要点
大数据·开发语言·c++·算法
释怀°Believe1 小时前
javaweb
数据库·sql·oracle
jason成都2 小时前
elasticsearch部署时创建用户密码
大数据·elasticsearch·jenkins
wuxuanok2 小时前
ThinkPHP ——安装部署与配置
sql·mysql·nginx·php
新华经济2 小时前
合同管理系统2025深度测评:甄零科技居榜首
大数据·人工智能·科技
黑客思维者3 小时前
招商银行信用卡AI客服系统:从0到1实战笔记
大数据·人工智能·笔记
醇氧4 小时前
【git】 撤回一个本地提交
大数据·git·elasticsearch
Elastic 中国社区官方博客4 小时前
Elasticsearch:数据脱节如何破坏现代调查
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索