【发布时间】:2016-11-27 00:04:16
【问题描述】:
我使用 str_to_map 作为:-
hive> select str_to_map("A:1,B:1,C:1");
OK
{"C":"1","A":"1","B":"1"}
如你所见,它返回的是 map
【问题讨论】:
标签: hive apache-spark-sql
我使用 str_to_map 作为:-
hive> select str_to_map("A:1,B:1,C:1");
OK
{"C":"1","A":"1","B":"1"}
如你所见,它返回的是 map
【问题讨论】:
标签: hive apache-spark-sql
我盯着这个看了一会,并没有看到太多,但事实证明它很简单——只需使用cast:
select cast(str_to_map("A:1,B:1,C:1") as map<string, int>)
-- {'A': 1, 'B': 1, 'C': 1}
【讨论】:
你可以尝试使用map_remove_keysUDF:
> 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 |
+------+
| {} |
+------+
【讨论】: