【发布时间】:2017-01-15 18:08:36
【问题描述】:
我在 hive 中处理 JSON 数组。我知道它也可以用 JSON serde 处理,但我想用 get_json_object 或 json_tuple 和正则表达式来处理。所以我关注链接http://mechanics.flite.com/blog/2014/04/16/using-explode-and-lateral-view-in-hive/
它给出了这样的 Json 文件
{"key1":"0","key2":"11.800","info":"[{\"id\":\"1234\",\"v\":\"3\"},{\"id\":\"5678\",\"v\":\"3\"}]","key3":"3"}
为什么它需要在 id 和其他所有值前面有斜线??观察如下所示
当我们在从上述结果中得到的正则表达式上添加拆分时,我们得到以下内容
["{\"id\":\"1234\",\"v\":\"3\"}","{\"id\":\"5678\",\"v\":\"3\"}"]
如果我删除源 Json 文件中的斜杠,ebrything 将变为 null。摆脱这种情况的可能方法是什么。
【问题讨论】:
-
它正在转义键“info”的 value 内的双引号。为什么不单引号,我不知道。你想从那个字符串中得到什么?
-
读取 hive 中的数据有一些方法。我只想要字符串形式的爆炸键值对,因为这些只对我有用。