| val sparkConf = new SparkConf().setMaster("local[2]").setAppName("tran") |
| val sparkSession = SparkSession.builder().config(sparkConf).getOrCreate() |
| |
| val seq:Seq[Student] = Array(Student("zs",20,"男"),Student("ls",21,"女"),Student("ww",22,"男")) |
| val rdd:RDD[Student] = sparkSession.sparkContext.makeRDD(seq) |
| val dataFrame:DataFrame = sparkSession.createDataFrame(rdd,classOf[Student]) |
| |
| val seq1:Seq[StudentScore] = Array(StudentScore("zs",50),StudentScore("ls",50),StudentScore("ml",50)) |
| val rdd1:RDD[StudentScore] = sparkSession.sparkContext.makeRDD(seq1) |
| val dataFrame1:DataFrame = sparkSession.createDataFrame(rdd1,classOf[StudentScore]) |
| |
| |
| case class Student(@BeanProperty var name:String,@BeanProperty var age:Int,@BeanProperty var sex:String) |
| case class StudentScore(@BeanProperty var name:String,@BeanProperty var score:Int) |
join
| |
| |
| |
| |
| |
| |
| |
| |
| def joinOpt(dataFrame: DataFrame, dataFrame1: DataFrame) = { |
| println("-------------------------join操作开始----------------------") |
| val frame = dataFrame.join(dataFrame1, Array("name"), "left").select("name", "age", "score") |
| frame.show() |
| println("-------------------------join操作结束----------------------") |
| } |
groupBy
| /** |
| * groupBy算子 分组函数后可以传递一些聚合函数算子进行聚合计算 |
| * 后可接max(col)、min(col)、count()、sum(col)、avg(col)算子进行分组后的聚合运算 |
| * 而且只能跟一个聚合算子 如果要跟多个聚合算子,使用以下的算子 |
| * agg(Map集合) |
| * Map("列名"->"sum/min/max/avg/count","列名"->"sum/min/max/avg/count") |
| * |
| * groupBy函数执行完成之后,得到DataFrame结果集中只存在age字段了 |
| */ |
| def groupByOpt(dataFrame: DataFrame, dataFrame1: DataFrame) = { |
| println("-------------------------groupBy1操作开始----------------------") |
| val frame = dataFrame.groupBy("sex").agg(Map("*" -> "count", "age" -> "max")).select("*") |
| frame.show() |
| println("-------------------------groupBy1操作结束----------------------") |
| println("-------------------------groupBy2操作开始----------------------") |
| val dataFrame4 = dataFrame.groupBy("sex").count() |
| dataFrame4.show() |
| println("-------------------------groupBy2操作结束----------------------") |
| } |
sort
| def sort(dataFrame: DataFrame, dataFrame1: DataFrame) = { |
| println("-------------------------sort操作开始----------------------") |
| val frame = dataFrame.sort("age").select("*") |
| frame.show() |
| println("-------------------------sort操作结束----------------------") |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?