str_to_map返回map<string,string>。如何让它返回map<string,int>?



我使用str_to_map作为:-

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

正如您可以注意到的,它正在返回类型为map<字符串,字符串>。我想要类型映射的对象。有出路吗?我们可以用某种方式打字来映射<字符串,int>?

我盯着这个看了一会儿,没有看到什么,但事实证明它很简单——只需使用cast:

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

您可以尝试使用map_remove_keys UDF:

> 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  |
+------+
| {}   |
+------+

相关内容

  • 没有找到相关文章

最新更新