concat_ws()和college_list()配合=>实现多行转一行
2023-12-21 16:42:54
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()
?
?
文章来源:https://blog.csdn.net/m0_69097184/article/details/135132603
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!