开窗函数(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,"男"20200),
("ls","c001",22,"女"20200),
("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()
}
}
posted @   jsqup  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示