【发布时间】:2014-07-11 03:58:08
【问题描述】:
假设我有以下 json:
{
"state":"VA",
"fruit":[
{"name":"Bannana",
"color":"Yellow",
"cost":1.6
},
{"name":"Apple",
"color":"Red"
"cost":1.4
}
]}
在猪中,我如何将上面的内容转换为以下内容:
{
"state":"VA",
"fruit":[
{"name":"Bannana",,
"cost":1.6
},
{"name":"Apple",
"cost":1.4
}
]}
我试过了:
A = #load file
B = FOREACH A GENERATE
state,
fruit.name,
fruit.cost;
以及以下内容:
A = #load file
B = FOREACH A GENERATE
state,
fruit as (m:bag{FruitInfo.(tuple(name:string, cost:double))});
似乎无论我做什么,我都会不断获得嵌套数组。我正在尝试做的事情可能吗?我选择 pig 是因为它能够转换数据。请注意,数据是使用 AvroStorage 加载的。
【问题讨论】:
-
尝试使用 UDF。我已将工作代码发布为答案。不使用 UDF 有什么限制吗?
标签: json apache-pig avro