开窗函数(javaAPI)
package SparkSQL.fun import org.apache.spark.SparkConf import org.apache.spark.sql.{Dataset, SparkSession} object PartitionCode { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setAppName("func1").setMaster("local[*]") val ss = SparkSession.builder().config(sparkConf).getOrCreate() import ss.implicits._ val dataset:Dataset[(String,String,Int,String)] = ss.createDataset(Array( ("zs","c001",21,"男"), ("ls","c001",22,"女"), ("ww","c001",23,"男"), ("ml","c002",20,"女"), ("zb","c002",23,"男") )) dataset.createTempView("student") /** * 查询表中的所有数据,并且每一个人后面跟上班级的平均年龄和总年龄 *("zs","c001",21,"男",20,200), ("ls","c001",22,"女",20,200), ("ww","c001",23,"男"), ("ml","c002",20,"女"), ("zb","c002",23,"男") */ val frame = ss.sql("select *, avg(_3) over(partition by _2) avg, sum(_3) over(partition by _2) sum from student") frame.show() println("-------------------------------") val frame1 = ss.sql("select *, max(_3) over(partition by _2) max_age from student") frame1.show() ss.stop() } }
本文来自博客园,作者:jsqup,转载请注明原文链接:https://www.cnblogs.com/jsqup/p/16659616.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?