Исключение с таблицей, идентифицированной с помощью AWS Glue Crawler и сохраненной в Каталоге данных

Я работаю над созданием нового озера данных компании и стараюсь найти лучший и самый последний вариант для работы здесь. Итак, я нашел довольно приятное решение для работы с EMR + S3 + Athena + Clue.

Процесс, который я сделал, это:

1 - Запустите Apache Spark script, чтобы создать 30 миллионов строк, разделенных по дате на S3, хранящихся в Orc.

2 - Запустите запрос Athena для создания внешней таблицы.

3 - Проверьте таблицу на EMR, связанную с Каталогом данных клея, и она отлично работает. И Spark, и Hive смогли получить доступ.

4 - Создайте еще 30 миллионов строк в другой папке, разделенной по дате. В формате Orc

5 - Раскройте сканер клея, который идентифицирует новую таблицу. Добавлен в каталог данных, и Афина смогла выполнить запрос. Но Spark и Hive не могут этого сделать. См. Исключение ниже:

Спарк Caused by: java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.hive.ql.io.orc.OrcStruct

Улей Error: java.io.IOException: org.apache.hadoop.hive.ql.metadata.HiveException: Error evaluating audit_id (state=,code=0)

Я проверял, была ли проблема с сериализацией, и я нашел это:

Таблица создана вручную (Конфигурация):

Формат ввода org.apache.hadoop.hive.ql.io.orc.OrcInputFormat

Формат вывода org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat

Serde serialization lib org.apache.hadoop.hive.ql.io.orc.OrcSerde

orc.compress SNAPPY

Таблица, созданная с помощью сканера клея:

Формат ввода org.apache.hadoop.mapred.TextInputFormat

Формат вывода org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

Serde serialization lib org.apache.hadoop.hive.ql.io.orc.OrcSerde

Итак, это не работает, чтобы читать из Hive или Spark. Он работает для Афины. Я уже изменил конфигурации, но не влиял на Hive или Spark.

Кто-нибудь столкнулся с этой проблемой?

Ответы

Ответ 1

Ну,

Через несколько недель, когда я опубликовал этот вопрос, AWS исправил проблему. Как я показал выше, проблема была реальной, и это было ошибкой от Клей.

Поскольку это новый продукт и все еще есть некоторые проблемы несколько раз.

Но это было решено должным образом. Теперь просмотрите свойства таблицы:

ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'