Ошибка выполнения MSCK REPAIR TABLE на внешней таблице Hive (Hive 2.3.6) - PullRequest
0 голосов
/ 13 марта 2020

Я создал внешнюю таблицу Hive на основе многораздельного файла Parquet в S3, используя оператор, подобный следующему:

CREATE EXTERNAL TABLE default.person
(
    first_name STRING,
    last_name STRING
)
PARTITIONED BY (age INT)
STORED AS parquet
LOCATION 's3a://default/person.parquet'"  

Таблица создана и запущена DESCRIBE TABLE default.person показывает:

+--------------------------+------------+----------+--+
|         col_name         | data_type  | comment  |
+--------------------------+------------+----------+--+
| first_name               | string     | NULL     |
| last_name                | string     | NULL     |
| # Partition Information  |            |          |
| # col_name               | data_type  | comment  |
| age                      | int        | NULL     |
+--------------------------+------------+----------+--+

Однако, когда я запрашиваю таблицу с Билайном, он возвращает ноль записей. Я думаю, что мне нужно обновить sh информацию о разделе в Hive Metastore.

Итак, я запускаю MSCK REPAIR TABLE default.person , но это не с этой ошибкой:

Error: java.lang.NoSuchMethodException: org.apache.hadoop.hive.ql.metadata.Hive.alterTable(java.lang.String, org.apache.hadoop.hive.ql.metadata.Table) (state=,code=0)

Нахожусь ли я на правильном пути, и почему может возникать эта ошибка?

Версия Hive - 2.3.6.

1 Ответ

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

Эквивалентная команда на Amazon Elasti c Версия Hive MapReduce (EMR):

ALTER TABLE table_name RECOVER PARTITIONS;

Подробнее см. Руководство по восстановлению разделов .

...