国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

Apache Pig 架構

2018-12-28 18:57 更新

用于使用Pig分析Hadoop中的數(shù)據(jù)的語言稱為 Pig Latin ,是一種高級數(shù)據(jù)處理語言,它提供了一組豐富的數(shù)據(jù)類型和操作符來對數(shù)據(jù)執(zhí)行各種操作。

要執(zhí)行特定任務時,程序員使用Pig,需要用Pig Latin語言編寫Pig腳本,并使用任何執(zhí)行機制(Grunt Shell,UDFs,Embedded)執(zhí)行它們。執(zhí)行后,這些腳本將通過應用Pig框架的一系列轉換來生成所需的輸出。

在內(nèi)部,Apache Pig將這些腳本轉換為一系列MapReduce作業(yè),因此,它使程序員的工作變得容易。Apache Pig的架構如下所示。

Apache Pig架構

Apache Pig組件

如圖所示,Apache Pig框架中有各種組件。讓我們來看看主要的組件。

Parser(解析器)

最初,Pig腳本由解析器處理,它檢查腳本的語法,類型檢查和其他雜項檢查。解析器的輸出將是DAG(有向無環(huán)圖),它表示Pig Latin語句和邏輯運算符。在DAG中,腳本的邏輯運算符表示為節(jié)點,數(shù)據(jù)流表示為邊。

Optimizer(優(yōu)化器)

邏輯計劃(DAG)傳遞到邏輯優(yōu)化器,邏輯優(yōu)化器執(zhí)行邏輯優(yōu)化,例如投影和下推。

Compiler(編譯器)

編譯器將優(yōu)化的邏輯計劃編譯為一系列MapReduce作業(yè)。

Execution engine(執(zhí)行引擎)

最后,MapReduce作業(yè)以排序順序提交到Hadoop。這些MapReduce作業(yè)在Hadoop上執(zhí)行,產(chǎn)生所需的結果。

Pig Latin數(shù)據(jù)模型

Pig Latin的數(shù)據(jù)模型是完全嵌套的,它允許復雜的非原子數(shù)據(jù)類型,例如 map tuple 。下面給出了Pig Latin數(shù)據(jù)模型的圖形表示。

Pig Latin數(shù)據(jù)模型

Atom(原子)

Pig Latin中的任何單個值,無論其數(shù)據(jù)類型,都稱為 Atom 。它存儲為字符串,可以用作字符串和數(shù)字。int,long,float,double,chararray和bytearray是Pig的原子值。一條數(shù)據(jù)或一個簡單的原子值被稱為字段。:“raja“或“30"

Tuple(元組)

由有序字段集合形成的記錄稱為元組,字段可以是任何類型。元組與RDBMS表中的行類似。例:(Raja,30)

Bag(包)

一個包是一組無序的元組。換句話說,元組(非唯一)的集合被稱為包。每個元組可以有任意數(shù)量的字段(靈活模式)。包由“{}"表示。它類似于RDBMS中的表,但是與RDBMS中的表不同,不需要每個元組包含相同數(shù)量的字段,或者相同位置(列)中的字段具有相同類型。

:{(Raja,30),(Mohammad,45)}

包可以是關系中的字段;在這種情況下,它被稱為內(nèi)包(inner bag)

:{Raja,30, {9848022338,raja@gmail.com,} }

Map(映射)

映射(或數(shù)據(jù)映射)是一組key-value對。key需要是chararray類型,且應該是唯一的。value可以是任何類型,它由“[]"表示,

:[name#Raja,age#30]

Relation(關系)

一個關系是一個元組的包。Pig Latin中的關系是無序的(不能保證按任何特定順序處理元組)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號