str-to-map返回map< string,string>如何使其返回map< string,int>?

ehxuflar  于 2021-06-28  发布在  Hive
关注(0)|答案(2)|浏览(667)

我使用str\u to\uMap为:-

hive> select str_to_map("A:1,B:1,C:1");
OK
{"C":"1","A":"1","B":"1"}

您可以注意到,它正在返回map<string,string>类型的对象。我想要Map类型的对象。有出路吗?我们能用某种方式把它转换成map<string,int>吗?

eiee3dmh

eiee3dmh1#

我盯着这个,环顾了一会儿,没有看到太多,但结果发现它很简单——只要使用 cast :

select cast(str_to_map("A:1,B:1,C:1") as map<string, int>)
-- {'A': 1, 'B': 1, 'C': 1}
q8l4jmvw

q8l4jmvw2#

您可以尝试使用map\u remove\u keys自定义项:

> add jar hdfs:///lib/brickhouse-0.7.1-SNAPSHOT.jar;
> create temporary function map_remove_keys as 'brickhouse.udf.collect.MapRemoveKeysUDF';
> select map_remove_keys(map("", 0), array(""));
+------+
| _c0  |
+------+
| {}   |
+------+

相关问题