当前位置: 首页 > news >正文

Spark-sql编程

创建子模块并添加依赖

IDEA中创建一个名为Spark-SQL的子模块。

在该子模块的pom.xml文件中添加Spark-SQL的依赖,具体依赖为org.apache.spark:spark-sql_2.12:3.0.0

编写Spark-SQL测试代码

定义一个User case class,用于表示用户信息(idnameage)。

创建一个名为SparkSQLDemoobject,并在其中编写main方法作为程序的入口。

main方法中,首先创建SparkConfSparkSession对象,用于配置和启动Spark环境。

使用SparkSession对象的read.json方法读取一个JSON格式的用户数据文件,并将其转换为一个DataFrame对象。

使用DataFrameshow方法展示数据内容。

演示SQL风格语法:通过createOrReplaceTempView方法将DataFrame注册为临时视图,然后使用spark.sql方法执行SQL查询,并展示查询结果。

演示DSL风格语法:使用DataFrameselect方法选择特定列,并展示结果。

演示RDDDataFrameDataSet之间的转换:

创建一个RDD对象,并将其转换为DataFrame对象,再进一步转换为DataSet对象。

演示如何将DataSet对象转换回DataFrameRDD,并遍历RDD中的数据。

停止SparkSession

main方法的最后,调用spark.stop()方法停止SparkSession,释放资源。

自定义函数(UDF

UDF允许用户定义自己的函数,并在Spark SQL查询中使用。

实验展示了如何注册一个简单的UDF,该函数接收一个字符串并返回一个新的字符串(前缀为"Name:")。

通过将DataFrame注册为临时视图,并在SQL查询中使用自定义的UDF,展示了UDF的实际应用。

自定义聚合函数(UDAF

UDAF用于实现复杂的聚合逻辑,是Spark SQL处理聚合计算的重要工具。

实验展示了两种实现UDAF的方法:弱类型UDAF和强类型UDAF

弱类型UDAF:通过继承UserDefinedAggregateFunction类并实现相关方法,定义了一个计算平均工资的聚合函数。该实现方式较为传统,适用于Spark 3.0之前的版本。

强类型UDAF:利用Aggregator类创建了一个更为类型安全的平均工资聚合函数。这种实现方式在Spark 3.0及以后版本中更为推荐。

在两种实现方式中,都展示了如何将UDAF注册到SparkSession中,并在SQL查询中使用它来计算平均工资。

相关文章:

  • (二)Graspnet在mujoco的仿真复现(操作记录)
  • 天津大学 | 智能制造与数字孪生技术:面向可持续制造方向发展
  • 在Centos7下源码安装部署 MySQL57
  • 【C语言基础】双指针在qsort函数中的应用
  • 浙江大学:DeepSeek如何引领智慧医疗的革新之路?|48页PPT下载方法
  • WordPress - 此站点出现严重错误
  • 《AI大模型应知应会100篇》第19篇:隐私保护与大模型训练
  • 计算机网络 - 四次挥手相关问题
  • 利用IDEA开发Spark-SQL
  • 状态机编程中的事件和状态
  • nginx自编译重现gzip和chunked的现象
  • MATLAB程序实现了一个物流配送优化系统,主要功能是通过遗传算法结合四种不同的配送策略,优化快递订单的配送方案
  • 封装实用的时间选择器组件
  • YOLOv3超详细解读(三):源码解析:数据处理模块
  • Spring Boot 参数校验 Validation 终极指南
  • Open AI 使用篇
  • 从拥堵到畅行,智慧城市如何实现交通魔法?
  • 深入剖析Java中ThreadLocal原理
  • 可灵 2.0 可图 2.0 全解析:从 AI 图片到影视级视频的创作革命
  • zkmall模块商城:B2C 场景下 Vue3 前端性能优化的广度探索与实践
  • 最高法:抢票软件为用户提供不正当优势,构成不正当竞争
  • 2025年上海车展后天开幕,所有进境展品已完成通关手续
  • 讲座|在数字化时代,“记住”到底意味着什么
  • 美国同日曝两起泄密事件:防长群聊向家人分享作战计划,白宫平面图被“共享”
  • 国安部:机关工作人员用软件扫描涉密文件备份网盘致重大泄密
  • 9厘米,25克!最小最轻的无线陆空两栖机器人来了