导致查询问题的默认配置单元分区值

6vl6ewon  于 2021-05-27  发布在  Hadoop
关注(0)|答案(0)|浏览(252)

我使用胶元存储为Hive,在此之前,我是使用Hive元存储。
在hive metastore上,我们有这样的分区,数据在s3上,具有相同的文件夹结构:

yr_no=__HIVE_DEFAULT_PARTITION__/mth_no=__HIVE_DEFAULT_PARTITION__/uniq_id=1234

在hive和glue元存储模式中,yr\u no和mth\u no列被定义为int
不过,在配置单元中,我可以毫无疑问地运行以下查询:

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

即使某些分区的yr\u数有值
配置单元\默认\分区
在使用相同查询的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中工作,但在glue metastore中不工作。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题