为什么按键搜索时,配置单元Map键(i16)不能向上投射?

8ftvxx2r  于 2021-06-27  发布在  Hive
关注(0)|答案(0)|浏览(207)

有一个由节俭定义的Hive表。

struct A {
    1: optional map<i16, string> myMap;
}

我尝试了一些查询来搜索这个表。

// this one gets an error:
select myMap[10] from A where myMap[10] is not null

行1:74Map键类型与索引表达式类型“10”不匹配
下面两个返回正确的结果。

// this one works well
select myMap[10S] from A where myMap[10S] is not null

// this one works well
select myMap[10Y] from A where myMap[10Y] is not null

我知道 10Y 手段 tinyint 以及 10S 手段 smallint ,和 i16smallint .
但为什么Hive会投下 smallinttinyint 而不是 int ?
我认为这可能会导致一些信息丢失或数字溢出。

暂无答案!

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

相关问题