我想删除/忽略以下json记录中的元素:
{“{u scroll\u id”:“==”,“timed\u out”:false,“\u shards”:{“total”:5,“successful”:5,“failed”:0},“hits”:{“total”:6908915,“max\u score”:null,“hits”:[{“\u index”:“\u v1”,“\u type”:“composite\u request\u response\u v1”,“\u id”:“123”,“\u score”:1.0,“\u source”:{“response”:{“testresults”:{“docsisresults”:{“devices”:[{“upstreamsection”:{“upstreams”:[]},“fluxsection”:{“fluxinfo”:[{}]}],“events”:[]},“mocaresults”:{“statuses”:[]}}}},“sort”:[null,1.0]}},
我有上述格式的记录。我想删除记录中突出显示的部分。有人能指导我怎样才能做到这一点吗。使用hive/pig/linux/python有什么方法可以实现这一点吗?
1条答案
按热度按时间kx7yvsdv1#
hive中有json serde,请参见:https://cwiki.apache.org/confluence/display/hive/json+serde 因此,您可以在表定义中仅定义所需的列,将文件放在表位置,然后仅选择已定义的列。或者,您可以在使用java+jackson(将java对象序列化或Map到json的库,反之亦然)加载文件之前对文件进行预处理/转换,这将为您提供最大的灵活性,尽管这并不像使用json-serde那么简单。