Выбор первого элемента в столбце массива в улье

#arrays #hive #hiveql

#массивы #улей #hiveql

Вопрос:

Я пытаюсь выбрать второй элемент в столбце массива, ограниченный каналом в улье. Как я могу этого добиться?

Ввод

 ["John Doe|ABC","Jane Doe|XYZ"]
  

Вывод

 ["ABC","XYZ"]
  

Ответ №1:

Разнесите массив, возьмите второй элемент с помощью split и снова соберите массив. Например, так:

 select t.myarray original_array, collect_list(split(e.element,'\|')[1]) result_array
  from input_table t
       lateral view explode(t.myarray) e as element
 group by t.myarray