Hive Query сгенерировал ошибку ввода: «__HIVE_D» не является целым числом - PullRequest
0 голосов
/ 17 марта 2020

У меня есть таблица Hive, в которой используется AWS Метасторка клея. Данные находятся на S3, и мы разбиваем на год, месяц и уникальный номер.

Я использую AWS EMR spark- sql для выполнения запросов

Вот пример структуры таблицы:

String                  Date          Int       Int        String
s3_url                  rec_dt        yr_number mth_number uniq_id
s3://path/example.txt   2020-03-16    2020      3          4195

Теперь, когда я запрашиваю эту таблицу, если выполнить команду ниже, она работает нормально:

select s3_url from table where (rec_dt in ('2020-03-16'))

Однако, когда я добавляю следующий параметр, выдается ошибка:

select s3_url from table where (rec_dt in ('2020-03-16')) and yr_number=2020;

Ошибка

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);

Я также проверил схему таблицы, столбец имеет тип int, и я также передаю значение типа int.

1 Ответ

0 голосов
/ 17 марта 2020

похоже, что это четкое указание на несоответствие каталога кустов и каталога клея. Вы сказали, что видели каталог кустов со столбцом

, отметьте, что в каталоге AWS клея есть этот столбец с указанным типом данных или нет.

Пример пользовательского интерфейса для проверки деталей схемы ...

enter image description here

Надеюсь, вы используете AWS Каталог данных клея в качестве метастафа Hive

...