我正在尝试使用猪解析json文件,但我没有得到预期的结果。我非常接近,但不知怎的,我无法得到结果。
这是我输入的json文件
$ cat example.json
{ "food":"Tacos", "person": [{"Name": "Alice","Age": 26},{"Name": "Jasper","Age": 28}],"amount":30 }
这是我期待的结果
$ cat result.txt
food,person.name,person.age,amount
Tacos,Alice,26,30
Tacos,Jasper,28,30
这就是我到现在为止所做的事情
$ cat example.pig
REGISTER 'elephant-bird-hadoop-compat-4.1.jar';
REGISTER 'elephant-bird-pig-4.1.jar';
A = LOAD 'example.json' USING com.twitter.elephantbird.pig.load.JsonLoader('- nestedLoad');
B = FOREACH A GENERATE FLATTEN($0#'person');
C = FOREACH B GENERATE FLATTEN($0) AS MYMAP;
D = FOREACH C GENERATE MYMAP#'Name',MYMAP#'Age';
DUMP D;
在运行此脚本后,我得到了这个输出
(Alice,26)
(Jasper,28)
如何提取第一个和最后一个键/值对?