Значение раздела Hive по умолчанию, вызывающее проблемы с запросом - PullRequest
0 голосов
/ 18 марта 2020

Я использую 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, но не в метастазах клея.

...