AWS Glue не обнаруживает раздел (создан другим методом Athena vs Glue) - PullRequest
0 голосов
/ 25 июня 2019

У меня есть файлы паркета в S3, созданные из разных источников. У них одинаковая схема. 1 создан с использованием Athena CTAS. Другой создан с помощью AWS Glue / Spark.

Файлы, созданные Glue, выглядят так:

enter image description here

Афины CTAS выглядят так:

enter image description here

Я попытался скопировать файлы из отсутствующих разделов в другую папку, а затем использовать сканер Glue, и Glue может это обнаружить. Но кажется, что эти разделы не обнаруживаются, когда все соединено. Это почему? Нужно ли обрабатывать все данные, используя 1 метод, чтобы это работало?

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Если вы добавили данные в новый раздел, Glue должен обнаружить их, если схема соответствует.

Вы можете попробовать сделать это вручную с Афиной и посмотреть, работает ли это. Надеюсь, это, по крайней мере, даст вам полезную ошибку.

ALTER TABLE orders ADD
  PARTITION (dt = '2016-05-14', country = 'IN') LOCATION 's3://mystorage/path/to/INDIA_14_May_2016'
  PARTITION (dt = '2016-05-15', country = 'IN') LOCATION 's3://mystorage/path/to/INDIA_15_May_2016';

источник: https://docs.aws.amazon.com/athena/latest/ug/alter-table-add-partition.html

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

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

Вы должны попытаться придумать более воспроизводимый пример.

0 голосов
/ 28 июня 2019

Хорошо, я нашел проблему.2 основных вопроса

  • Вывод Athena bigint при выводе spark int
  • Некоторые столбцы имеют разные регистры, например: countryname vs countryName

Один полезный совет - либоprintSchema каждого раздела и сравнить с помощью diff.Или проверьте раздел таблицы каталога AWS Glue Data и посмотрите разницу в разделах.

...