У меня есть файл паркета, который я сделал путем преобразования некоторого файла данных avro. Файл содержит сложные записи. Кроме того, у меня есть схема Avro этих записей, а также эквивалентная схема паркета (я получил ее, когда я преобразовал файл). Я хочу сделать таблицу улья, подкрепленную паркетным файлом.Как указать схему для данных паркета в улье 0.13+
Поскольку моя схема записи имеет много полей, очень сложно и склонна к ошибкам объявлять столбцы улья, соответствующие этим полям вручную. Вот почему я хочу, чтобы hive определял столбцы таблицы, поддерживаемые моим файлом паркета, используя паркетную схему записей, во многом аналогично AvroSerDe использует схему avro для определения столбцов таблицы. Поддерживается ли это ParquetSerDe? Как я могу это сделать?
P.S. Я знаю о возможном обходном пути, где я мог бы сначала определить таблицу с поддержкой avro, используя схему avro, а затем использовать оператор CTAS для создания таблицы паркета. Но это не работает, если схема имеет профсоюзы, поскольку AvroSerDe использует союзы Hive, у которых практически нет поддержки (!!), и ParquetSerDe не знает, как с ними справиться.
Были ли у вас доступ к данным из полей объединения в улье? – miljanm
Ваша схема имеет нулевые объединения только с одним вариантом реального типа. Это работает как с паркетным, так и с улей. Я говорил о союзах, где у вас есть несколько возможных типов данных, таких как '[" int "," string "," boolean "]'.AvroSerDe превращает их в тип улья, и я смог манипулировать данными такого рода только с помощью пользовательских UDF, так как улья не имеют никакой поддержки для них, даже в версии 0.14. ParquetSerDe выдает исключение, когда он встречает такой столбец. – miljanm