我想在配置单元中将数组转换为字符串。我想收集数组值以转换为字符串而不使用 [[""]] .
[[""]]
select actor, collect_set(date) as grpdate from actor_table group by actor;
以便 [["2016-07-01", "2016-07-02"]] 会变成 2016-07-01, 2016-07-02
[["2016-07-01", "2016-07-02"]]
2016-07-01, 2016-07-02
9vw9lbht1#
使用 concat_ws(string delimiter, array<string>) 连接数组的函数:
concat_ws(string delimiter, array<string>)
select actor, concat_ws(',',collect_set(date)) as grpdate from actor_table group by actor;
如果日期字段不是字符串,则将其转换为字符串:
concat_ws(',',collect_set(cast(date as string)))
如果您已经有一个数组(int)并且不想分解它来将元素类型转换为字符串,请阅读以下关于替代方法的答案:如何在配置单元中将int数组的元素连接到字符串
1条答案
按热度按时间9vw9lbht1#
使用
concat_ws(string delimiter, array<string>)
连接数组的函数:如果日期字段不是字符串,则将其转换为字符串:
如果您已经有一个数组(int)并且不想分解它来将元素类型转换为字符串,请阅读以下关于替代方法的答案:如何在配置单元中将int数组的元素连接到字符串