gpt4 book ai didi

json - Apache Pig中的Json解析

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

我有一个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');

上面是我的 pig 脚本。
如何在Apache Pig中 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"}中用双引号引起来。所以我将分数用作chararray,因此无法运行示例命令,所以我使用了上面的脚本来获取结果。

如果要执行采样操作,将分数数据转换为int,则将得到结果。

关于json - Apache Pig中的Json解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24930251/

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