如何在Azure Databricks SQL中将字段值转换为逗号分隔

时间:2019-05-16 22:41:35

标签: sql azure apache-spark-sql azure-databricks

我正在尝试获取每个ID的单个单元格中的字段值作为逗号分隔的值

我在Azure Databricks(SQL)上使用,我知道我们可以在传统SQL上使用xml path ..来实现此功能,但是在Azure Databricks中看不到此功能。我们还有其他方法可以达到以下预期结果吗?

采样数据如下

ID  User      Department
1   User1     Admin
2   User1     Accounts
3   User2     Finance
4   User3     Sales
5   User3     Finance

我正在寻找有关数据块的SQL查询,该查询会给我以下输出结果

ID  User      Department
1   User1     Admin,Accounts
2   User2     Finance
3   User3     Sales, Finance
select distinct t.[user],
  STUFF((SELECT distinct ', ' + t1.department
         from yourtable t1
         where t.[user] = t1.[user]
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,2,'') department
from yourtable t;

我正在寻找适用于数据块的类似脚本。

1 个答案:

答案 0 :(得分:0)

我认为找到了解决方案...可以使用spark函数之一实现.. concat_ws(',',, collect_set(col_name))..谢谢