Apache spark 在Spark SQL中的collect_set函数中指定分隔符

Apache spark 在Spark SQL中的collect_set函数中指定分隔符,apache-spark,apache-spark-sql,aggregate,Apache Spark,Apache Spark Sql,Aggregate,我想在我在Spark SQL中使用的collect_set函数中添加一个分隔符。 如果不可用,请告诉我如何以任何其他方式实现它。使用concat,concat\ws,collect\u set在Spark SQL中指定分隔符 示例: val df=Seq(("a",1),("a",3),("b",2)).toDF("id","sa") df.createOrReplaceTempView("tmp") spark.sql("""select concat('[', //concat with o

我想在我在Spark SQL中使用的collect_set函数中添加一个分隔符。
如果不可用,请告诉我如何以任何其他方式实现它。

使用
concat,concat\ws,collect\u set
Spark SQL中指定分隔符

示例:

val df=Seq(("a",1),("a",3),("b",2)).toDF("id","sa")
df.createOrReplaceTempView("tmp")
spark.sql("""select concat('[', //concat with opening bracket
                            concat_ws(';', //custom delimiter
                                        collect_set(sa)),
                                                        concat(']') //concat with closing bracket
                            ) as cnct_deli 
                    from tmp 
                group by id""").show()
+---------+
|cnct_deli|
+---------+
|      [2]|
|    [1;3]|
+---------+
结果:

val df=Seq(("a",1),("a",3),("b",2)).toDF("id","sa")
df.createOrReplaceTempView("tmp")
spark.sql("""select concat('[', //concat with opening bracket
                            concat_ws(';', //custom delimiter
                                        collect_set(sa)),
                                                        concat(']') //concat with closing bracket
                            ) as cnct_deli 
                    from tmp 
                group by id""").show()
+---------+
|cnct_deli|
+---------+
|      [2]|
|    [1;3]|
+---------+