spark练习 stu 行转列 列转行
package com.shujia.spark.sql import org.apache.spark.sql.{DataFrame, SparkSession} object Demo8Stu { def main(args: Array[String]): Unit = { val spark: SparkSession =SparkSession.builder() .appName("stu") .master("local") .getOrCreate() val stu: DataFrame =spark.read .format("csv") .option("sep",",") .schema("name String,item String,score Double") .load("data/stu.txt") stu.createOrReplaceTempView("stu") /** * * 1、行列转换 * * * 表1 * 姓名,科目,分数 * name,item,score * 张三,数学,33 * 张三,英语,77 * 李四,数学,66 * 李四,英语,78 * * 表2 * 姓名,数学,英语 * name,math,english * 张三,33,77 * 李四,66,78 * * * 1、将表1转化成表2 * 2、将表2转化成表1 * */ val stu1: DataFrame =spark.sql( """ | |select |name, |sum(case when item = '数学' then score else 0 end) as math , |sum(case when item = '英语' then score else 0 end) as english |from |stu |group by name | | """.stripMargin) stu1.show() stu1.createOrReplaceTempView("stu2") spark.sql( """ | |select name,explode(map('数学',math,'英语',english)) as (item,score) from stu1 | """.stripMargin).show() } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能