有一个由节俭定义的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
,和 i16
是 smallint
.
但为什么Hive会投下 smallint
至 tinyint
而不是 int
?
我认为这可能会导致一些信息丢失或数字溢出。
暂无答案!
目前还没有任何答案,快来回答吧!