欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

pig的原理及特點(diǎn)是什么

這篇文章給大家介紹pig的原理及特點(diǎn)是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了富蘊(yùn)免費(fèi)建站歡迎大家使用!

Apache Pig是MapReduce的一個(gè)抽象。它是一個(gè)工具/平臺(tái),用于分析較大的數(shù)據(jù)集,并將它們表示為數(shù)據(jù)流。Pig通常與 Hadoop 一起使用;我們可以使用Apache Pig在Hadoop中執(zhí)行所有的數(shù)據(jù)處理操作。

要使用 Apache Pig 分析數(shù)據(jù),程序員需要使用Pig Latin語言編寫腳本。所有這些腳本都在內(nèi)部轉(zhuǎn)換為Map和Reduce任務(wù)。Apache Pig有一個(gè)名為 Pig Engine 的組件,它接受Pig Latin腳本作為輸入,并將這些腳本轉(zhuǎn)換為MapReduce作業(yè)。

為什么要使用Apache Pig

  • 使用 Pig Latin ,程序員可以輕松地執(zhí)行MapReduce作業(yè),而無需在Java中鍵入復(fù)雜的代碼。

  • Apache Pig使用多查詢方法,從而減少代碼長(zhǎng)度。例如,需要在Java中輸入200行代碼(LoC)的操作在Apache Pig中輸入少到10個(gè)LoC就能輕松完成。最終,Apache Pig將開發(fā)時(shí)間減少了近16倍。

  • Pig Latin是類似SQL的語言,當(dāng)你熟悉SQL后,很容易學(xué)習(xí)Apache Pig。

  • Apache Pig提供了許多內(nèi)置操作符來支持?jǐn)?shù)據(jù)操作,如join,filter,ordering等。此外,它還提供嵌套數(shù)據(jù)類型,例如tuple(元組),bag(包)和MapReduce缺少的map(映射)。

Apache Pig具有以下特點(diǎn):

  • 豐富的運(yùn)算符集 - 它提供了許多運(yùn)算符來執(zhí)行諸如join,sort,filer等操作。

  • 易于編程 - Pig Latin與SQL類似,如果你善于使用SQL,則很容易編寫Pig腳本。

  • 優(yōu)化機(jī)會(huì) - Apache Pig中的任務(wù)自動(dòng)優(yōu)化其執(zhí)行,因此程序員只需要關(guān)注語言的語義。

  • 可擴(kuò)展性 - 使用現(xiàn)有的操作符,用戶可以開發(fā)自己的功能來讀取、處理和寫入數(shù)據(jù)。

  • 用戶定義函數(shù) - Pig提供了在其他編程語言(如Java)中創(chuàng)建用戶定義函數(shù)的功能,并且可以調(diào)用或嵌入到Pig腳本中。

  • 處理各種數(shù)據(jù) - Apache Pig分析各種數(shù)據(jù),無論是結(jié)構(gòu)化還是非結(jié)構(gòu)化,它將結(jié)果存儲(chǔ)在HDFS中。

Apache Pig與MapReduce

下面列出的是Apache Pig和MapReduce之間的主要區(qū)別。

Apache PigMapReduce
Apache Pig是一種數(shù)據(jù)流語言。MapReduce是一種數(shù)據(jù)處理模式。

它是一種高級(jí)語言。

MapReduce是低級(jí)和剛性的。
在Apache Pig中執(zhí)行Join操作非常簡(jiǎn)單。在MapReduce中執(zhí)行數(shù)據(jù)集之間的Join操作是非常困難的。
任何具備SQL基礎(chǔ)知識(shí)的新手程序員都可以方便地使用Apache Pig工作。向Java公開是必須使用MapReduce。
Apache Pig使用多查詢方法,從而在很大程度上減少代碼的長(zhǎng)度。MapReduce將需要幾乎20倍的行數(shù)來執(zhí)行相同的任務(wù)。
沒有必要編譯。執(zhí)行時(shí),每個(gè)Apache Pig操作符都在內(nèi)部轉(zhuǎn)換為MapReduce作業(yè)。MapReduce作業(yè)具有很長(zhǎng)的編譯過程。

Apache Pig Vs SQL

下面列出了Apache Pig和SQL之間的主要區(qū)別。

PigSQL
Pig Latin是一種程序語言。SQL是一種聲明式語言。
在Apache Pig中,模式是可選的。我們可以存儲(chǔ)數(shù)據(jù)而無需設(shè)計(jì)模式(值存儲(chǔ)為01,01, 02等)模式在SQL中是必需的。
Apache Pig中的數(shù)據(jù)模型是嵌套關(guān)系。SQL 中使用的數(shù)據(jù)模型是平面關(guān)系
Apache Pig為查詢優(yōu)化提供有限的機(jī)會(huì)。在SQL中有更多的機(jī)會(huì)進(jìn)行查詢優(yōu)化。

除了上面的區(qū)別,Apache Pig Latin:

  • 允許在pipeline(流水線)中拆分。

  • 允許開發(fā)人員在pipeline中的任何位置存儲(chǔ)數(shù)據(jù)。

  • 聲明執(zhí)行計(jì)劃。

  • 提供運(yùn)算符來執(zhí)行ETL(Extract提取,Transform轉(zhuǎn)換和Load加載)功能。

Apache Pig VS Hive

Apache Pig和Hive都用于創(chuàng)建MapReduce作業(yè)。在某些情況下,Hive以與Apache Pig類似的方式在HDFS上運(yùn)行。在下表中,我們列出了幾個(gè)重要的點(diǎn)區(qū)分Apache Pig與Hive。

Apache PigHive
Apache Pig使用一種名為 Pig Latin 的語言(最初創(chuàng)建于 Yahoo )。Hive使用一種名為 HiveQL 的語言(最初創(chuàng)建于Facebook )。
Pig Latin是一種數(shù)據(jù)流語言。HiveQL是一種查詢處理語言。
Pig Latin是一個(gè)過程語言,它適合流水線范式。HiveQL是一種聲明性語言。
Apache Pig可以處理結(jié)構(gòu)化,非結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)。Hive主要用于結(jié)構(gòu)化數(shù)據(jù)。

Apache Pig的應(yīng)用程序

Apache Pig通常被數(shù)據(jù)科學(xué)家用于執(zhí)行涉及特定處理和快速原型設(shè)計(jì)的任務(wù)。使用Apache Pig:

  • 處理巨大的數(shù)據(jù)源,如Web日志。

  • 為搜索平臺(tái)執(zhí)行數(shù)據(jù)處理。

  • 處理時(shí)間敏感數(shù)據(jù)的加載

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

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

Apache Pig的架構(gòu)

pig的原理及特點(diǎn)是什么

Apache Pig組件

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

Parser(解析器)

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

Optimizer(優(yōu)化器)

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

Compiler(編譯器)

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

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

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

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

Pig Latin的數(shù)據(jù)模型是完全嵌套的,它允許復(fù)雜的非原子數(shù)據(jù)類型,例如 map  tuple 

Atom(原子)

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

Tuple(元組)

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

Bag(包)

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

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

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

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

Map(映射)

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

:[name#Raja,age#30]

Relation(關(guān)系)

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

關(guān)于pig的原理及特點(diǎn)是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)站欄目:pig的原理及特點(diǎn)是什么
文章路徑:http://aaarwkj.com/article24/ijhsje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司App開發(fā)、全網(wǎng)營銷推廣域名注冊(cè)、網(wǎng)站設(shè)計(jì)軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)
日韩精品一区二区av在线| 国产精品亚洲伦理在线| 日韩高清不卡免费视频| 成年自拍视频在线观看| 国产av剧情在线免费观看| 亚洲精品在线观看第一页| 日本av电影一区二区三区四区| 亚洲精品一区二区三区中文字幕| 亚洲一区二区三区四区五区六| 国产午夜精品福利爽爽| 麻豆精品情欲人妻二区| 久久五月婷婷爱综合亚洲| 国产午夜草莓视频在线观看| 国产av剧情在线免费观看| 午夜免费成人在线视频| 中文字幕av在线有码| 国产成人亚洲欧美激情| 国产亚洲精品第一综合| 国产日韩欧美另类专区| 91一区二区亚洲嫩草| 国产一区二区日本在线| 国产精品三级玖玖玖电影| 亚洲精品不卡一区二区| 国产av不卡精品影片| 国产av超爽剧情系列| 亚洲五月六月激情综合| 久久亚洲精品中文字幕一| 日韩成人在线视频中文字幕| 精品人妻一区三区蜜桃| 国精品91人妻一区二区| 91精品国产综合久久男男| 国产精品白丝一区二区三区| 亚洲欧美国产在线日韩| 欧美熟妇精品一区二区蜜桃| 久久九九精品日本人妻视频| 国产亚洲精品第一综合| 97人妻人人揉人人澡人人学生| 国产三级国产精品国产国在线观看| 亚洲天堂成人av蜜臀| 免费av不卡一区二区| 久久精品亚洲国产成人av|