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进行投诉反馈,一经查实,立即删除!