品牌排名网站,四川网络推广公司,房地产官网,做图表的网站推荐需求
将课程和人员列进行分组#xff0c;然后将人员列聚合为逗号分隔的字符串。
数据
course | person Math | Alice Math | Bob Math | Charlie| Science| David Science| Emily Science| Frank
sql代码#xff1a;
SELECT 课程, GROUP_CONCAT(人员 ORD…需求
将课程和人员列进行分组然后将人员列聚合为逗号分隔的字符串。
数据
course | person Math | Alice Math | Bob Math | Charlie| Science| David Science| Emily Science| Frank
sql代码
SELECT 课程, GROUP_CONCAT(人员 ORDER BY 人员 SEPARATOR ,) AS 课程所有人员
FROM 表
GROUP BY 课程;
spark代码
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._ val spark SparkSession.builder() .appName(CourseMembers) .master(local[*]) // 在本地运行使用所有可用核 .getOrCreate() // 数据存在一个叫做 courses 的 DataFrame 中
val courses spark.read.format(csv).option(header, true).load(path_to_your_data.csv) // 使用 groupBy 和 agg 函数来根据课程名聚合并使用 collect_list 函数将人员列聚合为逗号分隔的字符串
val courseMembers courses.groupBy(course).agg(concat_ws(,, person).alias(course_members)) // 结果
courseMembers.show()
结果
Math | Alice,Bob,Charlie Science| David,Emily,Frank