我已经基于s3中的分区Parquet文件创建了一个外部配置单元表,使用类似于以下语句:
CREATE EXTERNAL TABLE default.person
(
first_name STRING,
last_name STRING
)
PARTITIONED BY (age INT)
STORED AS parquet
LOCATION 's3a://default/person.parquet'"
表已创建并运行descripe 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 |
+--------------------------+------------+----------+--+
但是,当我用beeline查询表时,它返回零条记录。我想我需要刷新配置单元元存储中的分区信息。
因此,我运行了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)
我走的路对吗?为什么会发生这种错误?
配置单元版本是2.3.6。
1条答案
按热度按时间wpcxdonn1#
amazon elastic mapreduce(emr)版本的hive上的等效命令是:
有关详细信息,请参阅恢复分区手册。