簡體   English   中英

Apache Pig中的Json解析

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM