concat_ws()
:
concat_ws()
是“with separator”的缩写,它是一个用于连接字符串的函数。ws
代表“with separator”,即带有分隔符。- 这个函数的作用是将多个字符串连接起来,并在它们之间插入指定的分隔符。
- 语法:
concat_ws(separator, string1, string2, ...)
concat_ws()
函数将两列数据连接起来,并在它们之间添加一个逗号作为分隔符。
college_list()
:
college_list()
可能是一个自定义函数,而不是一个标准的Python函数。- 根据名称猜测,这个函数可能是用来获取或生成一个大学列表的。
- 具体的功能和实现取决于该函数的定义和上下文。
1.创建数据
val sc = new SparkSession.Builder().config("hive.exec.dynamic.partition", "true").config("hive.exec.dynamic.partition.mode", "nonstrict").config(conf).enableHiveSupport().getOrCreate()val data = Seq(("Alice", 20, "小白", Date.valueOf("2023-03-15")),("Bob", 20, "Mathematics", Date.valueOf("2023-03-16")),("Charlie", 21, "Physics", Date.valueOf("2023-03-17")),("David", 21, "Chemistry", Date.valueOf("2023-03-18")),("Eva", 22, "Computer Science", Date.valueOf("2023-03-19")),("Frank", 20, "English", Date.valueOf("2023-03-20")),("Grace", 22, "Spanish", Date.valueOf("2023-03-21")))import sc.implicits._import sc.implicits._val df = data.toDF("name", "age", "address", "data_time")
2.处理数据
// 1. collect_list将分组后的行转换为一个列表// 2. sort_array实现列表排序// 3. 用concat_ws是将排序后的"city"列表中的每个值用逗号,连接起来,形成一个字符串df.groupBy("age").agg(concat_ws(",",sort_array(collect_list("name").as("name"),false)).as("concat_name")).show()