[英]Json Parsing in Apache Pig
我有一個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');
上面是我的豬腳本。 如何parse
Apache Pig中的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,則將得到結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.