Как преобразовать массив в строку в hive sql?

Вопрос:Я хочу преобразовать массив в строку в куст. Я хочу, чтобы значения массива 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) для объединения массива: select actor, concat_ws(',',collect_set(date)) as grpdate from actor_table group by

Вопрос:

Я хочу преобразовать массив в строку в куст. Я хочу, чтобы значения массива 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

Оцените статью
Добавить комментарий