Я использую Glue metastore для Hive, до этого я использовал Hive Metastore.
В Hive Metastore у нас были подобные разделы, и данные были на s3 с той же структурой папок:
yr_no=__HIVE_DEFAULT_PARTITION__/mth_no=__HIVE_DEFAULT_PARTITION__/uniq_id=1234
Столбцы yr_no и mth_no определены как int в схемах метастазов Hive и Glue
Однако в Hive я могу выполнить запрос ниже без проблем:
select s3_url from table where (rec_dt in ('2020-03-16')) and yr_no=2020;
Даже если некоторые разделы yr_number имеет значение
____ HIVE_DEFAULT_PARTITION ____
В Glue с тем же запросом я получаю сообщение об ошибке ниже, похоже, что оно рассматривает значение как String, а не Int, поэтому происходит сбой.
Error in query: org.apache.hadoop.hive.metastore.api.InvalidObjectException:
For input string: "__HIVE_D" is not an integer.
(Service: AWSGlue; Status Code: 400; Error Code: InvalidInputException;
Request ID: 586ff8e1-8f67-4593-940d-9f992a073be3);
Не уверен, почему он работает в Hive metastore, но не в метастазах клея.