Apache Pig架構(gòu)包括了什么,相關(guān)知識(shí)有哪些
Admin 2022-09-27 群英技術(shù)資訊 849 次瀏覽
這篇文章給大家分享的是Apache Pig架構(gòu)包括了什么,相關(guān)知識(shí)有哪些。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,文中的介紹得很詳細(xì),而要易于理解和學(xué)習(xí),有需要的朋友可以參考,接下來(lái)就跟隨小編一起了解看看吧。用于使用Pig分析Hadoop中的數(shù)據(jù)的語(yǔ)言稱(chēng)為 Pig Latin ,是一種高級(jí)數(shù)據(jù)處理語(yǔ)言,它提供了一組豐富的數(shù)據(jù)類(lèi)型和操作符來(lái)對(duì)數(shù)據(jù)執(zhí)行各種操作。
要執(zhí)行特定任務(wù)時(shí),程序員使用Pig,需要用Pig Latin語(yǔ)言編寫(xiě)Pig腳本,并使用任何執(zhí)行機(jī)制(Grunt Shell,UDFs,Embedded)執(zhí)行它們。執(zhí)行后,這些腳本將通過(guò)應(yīng)用Pig框架的一系列轉(zhuǎn)換來(lái)生成所需的輸出。
在內(nèi)部,Apache Pig將這些腳本轉(zhuǎn)換為一系列MapReduce作業(yè),因此,它使程序員的工作變得容易。Apache Pig的架構(gòu)如下所示。
如圖所示,Apache Pig框架中有各種組件。讓我們來(lái)看看主要的組件。
最初,Pig腳本由解析器處理,它檢查腳本的語(yǔ)法,類(lèi)型檢查和其他雜項(xiàng)檢查。解析器的輸出將是DAG(有向無(wú)環(huán)圖),它表示Pig Latin語(yǔ)句和邏輯運(yùn)算符。在DAG中,腳本的邏輯運(yùn)算符表示為節(jié)點(diǎn),數(shù)據(jù)流表示為邊。
邏輯計(jì)劃(DAG)傳遞到邏輯優(yōu)化器,邏輯優(yōu)化器執(zhí)行邏輯優(yōu)化,例如投影和下推。
編譯器將優(yōu)化的邏輯計(jì)劃編譯為一系列MapReduce作業(yè)。
最后,MapReduce作業(yè)以排序順序提交到Hadoop。這些MapReduce作業(yè)在Hadoop上執(zhí)行,產(chǎn)生所需的結(jié)果。
Pig Latin的數(shù)據(jù)模型是完全嵌套的,它允許復(fù)雜的非原子數(shù)據(jù)類(lèi)型,例如 map 和 tuple 。下面給出了Pig Latin數(shù)據(jù)模型的圖形表示。
Pig Latin中的任何單個(gè)值,無(wú)論其數(shù)據(jù)類(lèi)型,都稱(chēng)為 Atom 。它存儲(chǔ)為字符串,可以用作字符串和數(shù)字。int,long,float,double,chararray和bytearray是Pig的原子值。一條數(shù)據(jù)或一個(gè)簡(jiǎn)單的原子值被稱(chēng)為字段。例:“raja“或“30"
由有序字段集合形成的記錄稱(chēng)為元組,字段可以是任何類(lèi)型。元組與RDBMS表中的行類(lèi)似。例:(Raja,30)
一個(gè)包是一組無(wú)序的元組。換句話(huà)說(shuō),元組(非唯一)的集合被稱(chēng)為包。每個(gè)元組可以有任意數(shù)量的字段(靈活模式)。包由“{}"表示。它類(lèi)似于RDBMS中的表,但是與RDBMS中的表不同,不需要每個(gè)元組包含相同數(shù)量的字段,或者相同位置(列)中的字段具有相同類(lèi)型。
例:{(Raja,30),(Mohammad,45)}
包可以是關(guān)系中的字段;在這種情況下,它被稱(chēng)為內(nèi)包(inner bag)。
例:{Raja,30, {9848022338,[email protected],} }
映射(或數(shù)據(jù)映射)是一組key-value對(duì)。key需要是chararray類(lèi)型,且應(yīng)該是唯一的。value可以是任何類(lèi)型,它由“[]"表示,
例:[name#Raja,age#30]
一個(gè)關(guān)系是一個(gè)元組的包。Pig Latin中的關(guān)系是無(wú)序的(不能保證按任何特定順序處理元組)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:[email protected]進(jìn)行舉報(bào),并提供相關(guān)證據(jù),查實(shí)之后,將立刻刪除涉嫌侵權(quán)內(nèi)容。
猜你喜歡
近幾年,大數(shù)據(jù),云計(jì)算逐漸走入大眾視野,很多人應(yīng)該都有聽(tīng)說(shuō)大數(shù)據(jù)和云計(jì)算。對(duì)于這兩者的關(guān)系,更多會(huì)混淆,因此這篇文章就給大家簡(jiǎn)單的介紹關(guān)于云計(jì)算和大數(shù)據(jù)的關(guān)系究竟是怎樣的,感興趣的朋友可以看看。
DISTINCT 運(yùn)算符用于從關(guān)系中刪除冗余(重復(fù))元組。語(yǔ)法下面給出了 DISTINCT 運(yùn)算符的語(yǔ)法。grunt> Relation_name2 = DISTINCT Relatin_name1;
ORDER BY 運(yùn)算符用于以基于一個(gè)或多個(gè)字段的排序順序顯示關(guān)系的內(nèi)容。語(yǔ)法下面給出了 ORDER BY 運(yùn)算符的語(yǔ)法。grunt> Relation_name2 = ORDER Relatin_name1 BY (ASC|DESC);
除了內(nèi)置函數(shù)之外,Apache Pig還為 User Defined Function(UDF:用戶(hù)定義函數(shù))提供廣泛的支持。使用這些UDF,可以定義我們自己的函數(shù)并使用它們。UDF支持六種編程語(yǔ)言,即Java,Jython,Python,JavaScript,Ruby和Groovy。
大數(shù)據(jù)時(shí)代,很多領(lǐng)域都應(yīng)用了數(shù)據(jù)分析,這篇文章想要給大家分享的關(guān)于數(shù)據(jù)分析的類(lèi)型模式,包括描述型,診斷型,預(yù)測(cè)型,指導(dǎo)型這四種。小編覺(jué)得是比較有趣的,感興趣的朋友就繼續(xù)往下看吧。
推薦內(nèi)容
相關(guān)標(biāo)簽
成為群英會(huì)員,開(kāi)啟智能安全云計(jì)算之旅
立即注冊(cè)關(guān)注或聯(lián)系群英網(wǎng)絡(luò)
7x24小時(shí)售前:400-678-4567
7x24小時(shí)售后:0668-2555666
24小時(shí)QQ客服
群英微信公眾號(hào)
CNNIC域名投訴舉報(bào)處理平臺(tái)
服務(wù)電話(huà):010-58813000
服務(wù)郵箱:[email protected]
投訴與建議:0668-2555555
Copyright ? QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版權(quán)所有
增值電信經(jīng)營(yíng)許可證 : B1.B2-20140078 ICP核準(zhǔn)(ICP備案)粵ICP備09006778號(hào) 域名注冊(cè)商資質(zhì) 粵 D3.1-20240008