2015-03-16 2 views
0

Я пытаюсь поместить таблицу улей поверх таблицы паркета, которую я создал на основе следующего содержимого json:
{"user_id": "4513", "providers": [ { "ID": "4220", "имя": "dbmvl", "поведение": { "b1": "gxybq", "b2": "ntfmx"}}, { "ID": "4173",» name ":" dvjke "," behaviors ": {" b1 ":" sizow "," b2 ":" knuuc "}}]}

{" user_id ":" 3960 "," providers ": [{" идентификатор ":" 1859" , "название": "ponsv", "поведение": { "b1": "ahfgc", "b2": "txpea"}}, { "идентификатор": "103", "название" : "uhqqo", "behaviors": {"b1": "lktyo", "b2": "ituxy"}}]}

{"user_id": "567", "providers": [{"id" : "9622", "имя": "crjju", "поведение": { "b1": "rhaqc", "b2": "npnot"}}, { "ID": "6965", "имя":» fnheh "," behaviors ": {" b1 ":" eipse "," b2 ":" nvxqk "}}]}Создание таблицы улей над сложным паркетным файлом

В основном я использовал искру sql, чтобы прочитать json и выписать файл паркета.

У меня проблемы с размещением улья на вершине полученного паркетного файла. Вот улей HQL у меня есть:
create table test (mycol STRUCT<user_id:String, providers:ARRAY<STRUCT<id:String, name:String, behaviors:MAP<String, String>>>>) stored as parquet; Alter table test set location 'hdfs:///tmp/test.parquet'; Вышеуказанные действия выполняются в порядке, но я получаю ошибки, когда я пытаюсь сделать выбор * на столе:
Failed за исключением java.io.IOException: java.lang.IllegalStateException Колонка Mycol индекс 0, не существует в {провайдеров = поставщиков, user_id = user_id}

ответ

1

Попробуйте изменить запрос:

create table test (user_id:String, providers:ARRAY<STRUCT<id:String, name:String, behaviors:MAP<String, String>>>) stored as parquet; 

корневой объект JSON получает сплющенные, когда паркет хранится файл.

Смежные вопросы