Apache spark 在Spark SQL中的collect_set函数中指定分隔符
我想在我在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
如果不可用,请告诉我如何以任何其他方式实现它。使用
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]|
+---------+