DataFrame中的转换算子2
2022/8/30 6:25:05
本文主要是介绍DataFrame中的转换算子2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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
/** * select name,age,score from student inner join studentscore on student.name = studentscore.name * join操作是内连接,但是DataFrame的join函数也支持左连接和右连接 * 三个参数: * 1、关联的另外一个DataFrame * 2、两个DataFrame的关联字段 Seq类型 关联字段可能有多个 * 3、连接类型 left right inner(默认) full */ 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操作结束----------------------") }
这篇关于DataFrame中的转换算子2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解