我有一个类似这样的json对象数组。由[和]封装的每个数组都在一行上。 [{"event":0,"properties":{"color":"red","connectionType":2}}{"event":30,"properties":{"color":"blue","connectionType":4}},{"event":45,"properties":{"color":"green","connectionType":3}}] [{"event":0,"properties":{"color":"red","connectionType":5}}, {"event":1,"properties":{"color",:"blue","connectionType":6}}]
这里是一个更容易阅读的格式。
[
{"event":0, "properties":{"color":"red","connectionType":2}},
{"event":3, "properties":{"color":"blue",'connectionType":4}},
{"event":45, "properties":{"color":"green","connectionType":3}}
]
[
{"event":0, "properties":{"color":"red","connectionType":5}},
{"event":1, "properties":{"color":"blue","connectionType":6}}
]
需要注意的是,[]中的每个json对象都在一行中。每行中对象的数量各不相同。属性中的字段数也各不相同。
对于这些数据,我需要的是获取每个json对象,并将其转换为以逗号分隔或制表符分隔的值形式的表格格式
| event | color | connectionType
0 red 2
3 blue 4
我看了一些pig用来读取json结构的工具,也就是elephant bird,但是不能让它在我的数据上工作。
我希望能得到其他解决方案的指针,或者使用象鸟/其他pig json解析器的示例代码。我的最终目标是捕获事件和属性的子集并将它们加载到配置单元中。
1条答案
按热度按时间byqmnocz1#
在json文件中。你没有开始对象。所以不能区分行。我找到了解决方案,但我已将start对象放在json对象中。
如果您想解析json对象而不放入start对象,在这种情况下,您应该编写自己的自定义udf。https://gist.github.com/kimsterv/601331
或者去找象鸟https://github.com/twitter/elephant-bird