您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關pig中用戶自定義函數(shù)的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
用戶自定義函數(shù)(UDF)
public abstract class EvalFunc<T> {
public abstract T exec(Tuple input) throws IOException;
public List<FuncSpec> getAvgToFuncMapping() throws FrontendException;
public FuncSpec outputSchema() throws FrontendException; }
輸入元組的字段包含傳遞給函數(shù)的表達式,輸出是泛型;對于過濾函數(shù)輸出就是Boolean類型。建議盡量在
getAvgToFuncMapping()/outputSchema()申明輸入和輸出數(shù)據(jù)的類型,以便Pig進行類型轉(zhuǎn)換或過濾不匹配類型的錯誤值。
Grunt>REGISTER pig-examples.jar;
DEFINE isGood org.hadoopbook.pig.IsGoodQuality();
加載UDF
public LoadFunc {
public void setLocation(String location, Job job);
public InputFormat getInputFormat();
public void prepareToRead(RecordReader reader, PigSplit split);
public Tuple next() throws IOException; }
類似Hadoop,Pig的數(shù)據(jù)加載先于mapper的運行,所以保證數(shù)據(jù)可以被分割成能被各個mapper獨立處理的部分非常重要。從Pig 0.7開始,
加載和存儲函數(shù)接口已經(jīng)進行了大幅修改,以便與Hadoop的InputFormat和OutputFormat類基本一致。
Grunt>Register loadfunc.jar
Define customLoad org.hadoopbook.pig.loadfunc()
records = load ‘input/sample.txt’ using customLoad(‘16-19, 88-92, 93-93’)
as (year:int, temperature:int, quality:int);
關于“pig中用戶自定義函數(shù)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。