Отличительное значение от массива ищет тип поля, который является строкой? - PullRequest
0 голосов
/ 15 октября 2018

У меня есть поле, в котором строки выглядят примерно так:

["apples", "pears", "grapes"]
["apples"]
["pears", "bananas", "grapes"]

Когда я делаю describe mytable, поле имеет тип строки.

В отличие от select distinct myfield I 'm ищет способ выделить отдельные значения после разделения, что-то вроде:

select distinct split(myfield, ',')

Есть ли способ сделать это в Hive SQL?

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете сделать это следующим образом.Вам понадобится replace скобки и split через запятую, чтобы получить массив.После этого вы можете взорвать ваш массив.

select distinct(explodedfield) 
from mytable 
lateral view 
explode(split( replace(replace(myfield,"]",""),"[","") , ",") ) 
f as explodedfield;

Если вы также хотите заменить кавычки, вы можете взглянуть на этот ответ Как преобразовать строку в массив в улье?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...