Создайте таблицу кустов, используя регулярное выражение или json SerDe, когда root является массивом - PullRequest
0 голосов
/ 26 февраля 2020

Мои данные в этом формате

[{"field1":"data1","field2":100,"field3":"more data1","field4":123.001}]

[{"field1":"data2","field2":200,"field3":"more data2","field4":123.002}]

[{"field1":"data3","field2":300,"field3":"more data3","field4":123.003}]

[{"field1":"data4","field2":400,"field3":"more data4","field4":123.004}]

(каждая строка является массивом только с одним объектом), и я хочу создать таблицу улья вокруг этого.

Если бы вокруг json не было [], тогда я мог бы легко использовать значение по умолчанию json serde ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'.

Проблема с регулярным выражением serde заключается в порядке полей, которые могут изменяться, и действительно трудно извлечь точные значения.

Как создать таблицу кустов с такими формат данных?

1 Ответ

0 голосов
/ 27 февраля 2020

Вы должны иметь возможность использовать ARRAY<STRUCT

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types#LanguageManualTypes -ComplexTypes

Я бы рекомендовал использовать регулярные выражения, только если всегда есть один JSON объект в каждом ряду

...