gpt4 book ai didi

json - Map Reduce 以在 hadoop 2.2 中解析 JSON 数据

转载 作者:行者123 更新时间:2023-12-02 21:48:48 25 4
gpt4 key购买 nike

您好,我有一个如下格式的 JSON。我需要在 map 函数中解析它以获取所有记录的性别信息。

[
{
"SeasonTicket" : false,
"name" : "Vinson Foreman",
"gender" : "male",
"age" : 50,
"email" : "vinsonforeman@cyclonica.com",
"annualSalary" : "$98,501.00",
"id" : 0
},
{
"SeasonTicket": true,
"name": "Genevieve Compton",
"gender": "female",
"age": 28,
"email": "genevievecompton@cyclonica.com",
"annualSalary": "$46,881.00",
"id": 1
},
{
"SeasonTicket": false,
"name": "Christian Crawford",
"gender": "male",
"age": 53,
"email": "christiancrawford@cyclonica.com",
"annualSalary": "$53,488.00",
"id": 2
}
]

我曾尝试使用 JSONparser,但无法通过 JSON 结构。有人建议我使用 JAQL 和 pig 但不能这样做。

任何帮助,将不胜感激。

最佳答案

我的理解是,您有一个包含 JSON 数组的巨大文件。其中,您需要向映射器读取相同的内容并发出 <id : gender> .挑战在于 JSON 涉及多行。

在这种情况下,我建议您将默认分隔符更改为“}”而不是“\n”。

在这种情况下,您将能够将部分 JSON 作为值放入 map 方法中。您可以丢弃 key ,即。字节偏移量并对值进行轻微的重构,例如删除不需要的 [ ] 或 ,并添加诸如“}”之类的字符,然后解析剩余的字符串。

此解决方案有效,因为在 JSON 中没有嵌套,并且 } 是根据给定示例的有效 JSON 结束分隔符。

要更改默认分隔符,只需设置属性 textinputformat.record.delimiter"}"
请查看this例子。

另请查看 this吉拉

关于json - Map Reduce 以在 hadoop 2.2 中解析 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22852250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com