问题
I want to convert an array to string in hive. I want to collect_set array values to convert to string without [[""]]
.
select actor, collect_set(date) as grpdate from actor_table group by actor;
so that [["2016-07-01", "2016-07-02"]]
would become 2016-07-01, 2016-07-02
回答1:
Use concat_ws(string delimiter, array<string>)
function to concatenate array:
select actor, concat_ws(',',collect_set(date)) as grpdate from actor_table group by actor;
If the date field is not string, then convert it to string:
concat_ws(',',collect_set(cast(date as string)))
Read also this answer about alternative ways if you already have an array and do not want to explode it: How to concatenate the elemets of int array to string in Hive
来源:https://stackoverflow.com/questions/38711201/how-can-i-convert-array-to-string-in-hive-sql