Scala apachespark将多行连接到一行中的列表中

Scala apachespark将多行连接到一行中的列表中,scala,apache-spark,hive,apache-spark-sql,Scala,Apache Spark,Hive,Apache Spark Sql,我需要从源表中创建一个表(配置单元表/spark数据框),该表将多行用户的数据存储到单行列表中 User table: Schema: userid: string | transactiondate:string | charges: string |events:array<struct<name:string,value:string>> ----|------------|-------| -----------------------------------

我需要从源表中创建一个表(配置单元表/spark数据框),该表将多行用户的数据存储到单行列表中

User table:
Schema:  userid: string | transactiondate:string | charges: string |events:array<struct<name:string,value:string>> 
----|------------|-------| ---------------------------------------
123 | 2017-09-01 | 20.00 | [{"name":"chargeperiod","value":"this"}]
123 | 2017-09-01 | 30.00 | [{"name":"chargeperiod","value":"last"}]
123 | 2017-09-01 | 20.00 | [{"name":"chargeperiod","value":"recent"}]
123 | 2017-09-01 | 30.00 | [{"name":"chargeperiod","value":"0"}]
456 | 2017-09-01 | 20.00 | [{"name":"chargeperiod","value":"this"}]
456 | 2017-09-01 | 30.00 | [{"name":"chargeperiod","value":"last"}]
456 | 2017-09-01 | 20.00 | [{"name":"chargeperiod","value":"recent"}]
456 | 2017-09-01 | 30.00 | [{"name":"chargeperiod","value":"0"}]
Spark版本:1.6.2, (“1”、“2017-02-01”、“30.00”、“abc2”), (“2”、“2017-02-01”、“20.00”、“abc”), (“2”、“2017-02-01”、“30.00”、“abc”)) .toDF(“id”、“日期”、“金额”、“数组”) df.withColumn(“新的”,concat_ws(“,”,$”日期“,$”金额“,$”数组”)) .选择(“id”、“新建”) .groupBy(“id”) .agg(concat_ws(“,”,collect_list(“新”))
您使用哪种语言?Scala?@moe这不是这个问题的解决方案,谢谢@hd16。concat_ws正在为数组[String]工作,但不为数组工作
userid:String | concatenatedlist :List[Row]
-------|-----------------
123    | [[2017-09-01,20.00,[{"name":"chargeperiod","value":"this"}]],[2017-09-01,30.00,[{"name":"chargeperiod","value":"last"}]],[2017-09-01,20.00,[{"name":"chargeperiod","value":"recent"}]], [2017-09-01,30.00, [{"name":"chargeperiod","value":"0"}]]]
456    | [[2017-09-01,20.00,[{"name":"chargeperiod","value":"this"}]],[2017-09-01,30.00,[{"name":"chargeperiod","value":"last"}]],[2017-09-01,20.00,[{"name":"chargeperiod","value":"recent"}]], [2017-09-01,30.00, [{"name":"chargeperiod","value":"0"}]]]