Вопрос:
Я хочу преобразовать массив в строку в куст. Я хочу, чтобы значения массива collect_set преобразовывались в строку без [[«»]].
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
Лучший ответ:
Используйте функцию 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 в строку в Hive