concat_ws()
:
concat_ws()
是“with separator”的缩写,它是一个用于连接字符串的函数。ws
代表“with separator”,即带有分隔符。- 这个函数的作用是将多个字符串连接起来,并在它们之间插入指定的分隔符。
- 语法:
concat_ws(separator, string1, string2, ...)
concat_ws()
函数将两列数据连接起来,并在它们之间添加一个逗号作为分隔符。
college_list()
:
college_list()
可能是一个自定义函数,而不是一个标准的Python函数。- 根据名称猜测,这个函数可能是用来获取或生成一个大学列表的。
- 具体的功能和实现取决于该函数的定义和上下文。
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")
// 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()
?