更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
已知综合成绩 = 实验成绩*0.4 + 考试成绩*0.6。现有需求,将空值数据和含有haida的数据进行清洗,对某专业某课程的综合成绩进行汇总,并以成绩大小从大到小进行排序。在给出的提示代码中写出其实现思路以及内容。 数据及效果图如下: "hkd001", "dsj","z1","english",81,91 "hkd001", "dsj","z1","math",82,93 "hkd002", "dsj","z2","english",83,88 "hkd002", "dsj","z2","math",85,84 "hkd003", "wlw","z1","english",81,84 "hkd003", "wlw","z1","math",82,82 "hkd004", "wlw","z2","english",83,80 "hkd004", "wlw","z2","math",85,88 "hkd005", "haida","z3","english",80,90 "hkd006", "haida","z4","english",80,90 "null", "null","null","null",0,0 效果图: (1) val data = Seq( ("hkd001", "dsj", "z1", "english", 81, 91), ("hkd001", "dsj", "z1", "math", 82, 93), ("hkd002", "dsj", "z2", "english", 83, 88), ("hkd002", "dsj", "z2", "math", 85, 84), ("hkd003", "wlw", "z1", "english", 81, 84), ("hkd003", "wlw", "z1", "math", 82, 82), ("hkd004", "wlw", "z2", "english", 83, 80), ("hkd004", "wlw", "z2", "math", 85, 88), ("hkd005", "haida", "z3", "english", 80, 90), ("hkd006", "haida", "z4", "english", 80, 90), ("null", "null", "null", "null", 0, 0) ).toDF("id","major","name","course","exp_score","exam_score") 构造原始数据 (2) val cleaned = data.filter( col("id") =!= "null" &&& col("major") =!= "null" &&& col("name") =!= "null" &&& col("course") =!= "null" &&& !col("major").contains("haida")) 数据清洗:过滤 null 和 major 包含 "haida" (3) val scored = cleaned.withColumn( "total_score", col("exp_score")*0.4 + col("exam_score")*0.6 ) 计算综合成绩 (4) val result = cleaned .groupBy("major", "course") .agg(sum("total_score").alias("sum_total_score")) .orderBy(desc("sum_total_score")) 按 major 列和 course 分组,并进行按汇总的综合成绩大小排序。【缺少答案,请补充】
1