在Hive中有一种更简单的方法来合并不同的JSON密钥吗?

时间:2017-08-24 18:58:42

标签: sql hadoop hive hiveql

我试图使用Hive解析json字符串,我注意到某些值有两个不同的键,例如:

get_json_object(json_string, '$.user_name')
get_json_object(json_string, '$.User_Name')

有没有办法检查一个密钥或另一个密钥是否存在,然后只是将值插入解析表?

我当前的脚本选择了两个并插入到表中,然后另一个脚本检查其中一个键的值是否为空,并在语句时执行大小写。

2 个答案:

答案 0 :(得分:2)

select  coalesce
        (
            get_json_object(json_string, '$.user_name')
           ,get_json_object(json_string, '$.User_Name')
        ) as username

from    tbl_something

答案 1 :(得分:0)

我想出了这个:

Select 
   CASE WHEN get_json_object(json_string, '$.user_name') is not null THEN get_json_object(json_string, '$.user_name')
   ELSE get_json_object(json_string, '$.User_Name')
   END AS username
FROM tbl_something;