在Amazon EMR上运行Hive 2.3.4,Pig 0.17.0,Hue 4.3.0,Tez 0.9.1,HBase 1.4.8,HCatalog 2.3.4时,我无法创建一个Hive地图,其中键具有多种类型的值,即map和string。错误是
SemanticException [Error 10016]: Line 3:28 Argument type mismatch ''$'': Value type "string" is different from preceding value types. Previous value type was "map<string,string>"
我正在尝试从配置单元表中的地图制作json:
create temporary function to_json AS 'brickhouse.udf.json.ToJsonUDF';
SELECT to_json(map(
"first_key",map("s","default_value")
, "second_key", get_json_object(my_table.`_special_column`,'$')
)) FROM my_table LIMIT 100;
_special_column可以包含字符串或映射。
是否可以通过任何方式配置配置单元来忽略它?还有其他解决方法吗?显然,json并不要求给定键下的所有值都属于同一类型,因此这看起来有些古怪且不合理。