Apache Pig中的Json解析



我有一个json:

{"Name":"sampling","elementInfo":{"fraction":"3"},"destination":"/user/sree/OUT","source":"/user/sree/foo.txt"}

我发现我们可以将json加载到PigScript中。

A = LOAD ‘data.json’
USING PigJsonLoader();

但是如何在Apache Pig中解析json

--Sampling.pig
--pig -x mapreduce -f Sampling.pig -param input=foo.csv -param output=OUT/pig -param delimiter="," -param fraction='0.05'
--Load data
inputdata = LOAD '$input' using PigStorage('$delimiter');
--Group data
groupedByAll = group inputdata all;
--output into hdfs
sampled = SAMPLE inputdata $fraction;
store sampled into '$output' using PigStorage('$delimiter'); 

以上是我的猪脚本。如何在Apache猪parse json(每个元素)?我需要把上面的json作为输入,分别解析它的source,delimiter,fraction,output和传递$input,$delimiter,$fraction,$output

如何解析相同的。请建议

试试这个:

--Load data
inputdata = LOAD '/input.txt' using JsonLoader('Name:chararray,elementinfo:(fraction:chararray),destionation:chararray,source:chararray');
--Group data
groupedByAll = group inputdata all;
store groupedByAll into '/OUT/pig' using PigStorage(',');

现在输出如下:

all,{(sampling1,(4),/user/sree/OUT1,/user/sree/foo1.txt),(sampling,(3),/user/sree/OUT,/user/sree/foo.txt)}

在输入文件分数数据{"fraction":"3"}双引号。所以我使用分数作为字符,所以不能运行示例命令,所以我使用上面的脚本来获得结果。

如果你想执行示例操作,将分数数据转换为int,然后你将得到结果。

相关内容

  • 没有找到相关文章

最新更新