版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第十六章Pig編程實戰(zhàn)樂·教育|智·全球Embraceeducation
|Enlightenhorizon大數(shù)據(jù)開發(fā)技術教學內容第一節(jié)Pig的安裝與運行第二節(jié)PigLatin基本語法第三節(jié)使用PigLatin實現(xiàn)數(shù)據(jù)處理操作知識目標教學目標了解Pig特點了解Pig的安裝方式技能目標能夠掌握PigLatin基本語法能夠掌握PigLatin實現(xiàn)數(shù)據(jù)處理畢業(yè)要求工程知識2.
問題分析3.設計/開發(fā)解決方案
4.研究
5.使用現(xiàn)代工具
6.工程與社會7.
環(huán)境和可持續(xù)發(fā)展10.溝通11.溝通12.項目管理Pig的安裝與運行–知識點預覽#節(jié)知識點難點重點應用1C16-01
Pig的安裝與運行1、Pig項目簡介
2、Pig項目定位3、Pig的基本架構√4、Pig的安裝和使用√5、Pig工作模式Pig項目簡介Yahoo貢獻給Apache的處理大數(shù)據(jù)的平臺2007年,正式成為hadoop的一個子項目無需大量MapReduceJava編程提供一個類似SQL的高級過程化語言PigLatin可以處理任何形式的數(shù)據(jù),這也是Pig項目名稱的由來Pig項目定位Pig的基本架構Pig相當于一個Hadoop的客戶端,
它首先連接到Hadoop集群,
之后才能在集群上進行各種操作。用戶無需在集群中安裝任何額外的軟件,
也不用對集群進行任何配置。Pig的基本架構PigLatin是Pig專用的腳本語言,是類似于SQL的面向數(shù)據(jù)流的語言。這套腳本語言提供了對數(shù)據(jù)進行排序、過濾、求和、分組、關聯(lián)等功能,同時,也允許用戶自定義一些函數(shù),以滿足某些特殊的數(shù)據(jù)處理需求。當需要處理海量數(shù)據(jù)時,先使用PigLatin語言編寫腳本程序,然后在Pig中執(zhí)行PigLatin程序。Pig將用戶編寫的PigLatin程序編譯為MapReduce作業(yè)程序,并上傳到集群中運行。對于用戶來說,底層MapReduce工作是完全透明的,用戶只要了解SQL-Like的PigLatin語言就可以處理海量數(shù)據(jù)。Pig的安裝和使用下載Pig安裝包(0.17.0版本) /dyn/closer.cgi/pig解壓Pig安裝包在.bash_profile中配置環(huán)境變量:
首先,添加PIG_HOME環(huán)境變量。例如: exportPIG_HOME=/opt/model/pig-0.17.0
然后,在PATH環(huán)境變量中添加Pig加載路徑: exportPATH=$PIG_HOME/bin:$PATH
最后,使用source命令使配置生效: [root@winstar~]#source~/.bashrcPig的安裝和使用驗證Pig是否安裝成功[root@winstar~]#pig-xlocal出現(xiàn)“grunt>”提示符,表示安裝正確,Pig已進入工作狀態(tài)。Pig的工作模式Pig的兩種工作模式:本地模式執(zhí)行命令為pig–xlocal僅在本地運行,無需HadoopMapReduce和HDFS用于檢查Pig程序的邏輯關系通過本地JVM訪問本地數(shù)據(jù)MapReduce模式默認的工作模式,執(zhí)行命令是pig或pig–xmapreduce要確保Hadoop集群正確配置并在運行狀態(tài)Pig腳本轉換成MapReduce任務,在Hadoop集群下執(zhí)行當要處理的數(shù)據(jù)量很大時,可選取一個數(shù)據(jù)子集,以本地方式交互編程調試,再在MapReduce模式下處理全部數(shù)據(jù)。Pig運行方式無論哪種工作模式,均支持以下三種運行方式:GruntShell—類似于LinuxShell形式的命令行交互方式,即grunt>提示符方式。腳本文件—將一系列Pig命令組織在一個腳本文件中集中執(zhí)行的方式。代碼嵌入—是指將Pig命令嵌入到Java語言中執(zhí)行的方式。Pig運行方式Pig運行方式—GruntShell方式該方式為命令行交互方式,通過以下命令啟動GruntShell:本地模式:
#pig–xlocalMapReduce模式:#pig–xmapreduce或#pig命令執(zhí)行后,進入GruntShell,出現(xiàn)grunt>提示符。PigLatin基本語法–知識點預覽#節(jié)知識點難點重點應用1C16-02
PigLatin基本語法1、PigLatin基本語法√
2、PigLatin數(shù)據(jù)結構√3、PigLatin數(shù)據(jù)類型PigLatin語言PigLatin是一套類SQL的高級過程化腳本語言。本節(jié)從簡單示例classdata.txt入手,介紹如何使用PigLatin語言編寫程腳本程序。 1 John 100 class1 2 Marry 99 class2 3 Peter 97 class3 4 Smith 98 class2 5 Linda 95 class1 6 Jane 96 class2四個字段分別為學號、姓名、成績、班級PigLatin語言編寫Pig腳本,處理classdata.txt數(shù)據(jù)統(tǒng)計結果PigLatin語言PigLatin語句大多以變量賦值的形式呈現(xiàn)。變量賦值符號“=”左右兩端應以空格分隔。語句中關鍵詞不區(qū)分大小寫,但變量和函數(shù)區(qū)分大小寫。PigLatin語句需要以;結尾,例如示例前3行。Pig命令不需要;結尾,例如第4行??墒褂靡韵伦⑨屨Z句:單行注釋:--多行注釋:/**/PigLatin數(shù)據(jù)結構Pig的數(shù)據(jù)結構:Field:存放一個原子的數(shù)據(jù),可以是一個字符串,一個數(shù)字等。例如,‘lucy’Tuple:Field的序列,其中的每個Field可以是任何一種數(shù)據(jù)類型。例如,(‘lucy’,‘1234’)Bag:Tuple的集合,每個Tuple可以包含不同數(shù)目不同類型的Field。例如,{(‘lucy’,’1234’)(‘jack’,(‘iPod’,‘a(chǎn)pple’))}Map:一組鍵值對的組合,在一個關系中的鍵值對必須是唯一的。例如:[name#Mike,phone#1391234]PigLatin數(shù)據(jù)模型Pig支持以下六種基本數(shù)據(jù)模型:這些數(shù)據(jù)類型主要用于指明載入字段的類型。PigLatin數(shù)據(jù)處理–知識點預覽#節(jié)知識點難點重點應用1C16-03
PigLatin數(shù)據(jù)處理1、PigLatinLoad操作√
2、PigLatinForeach操作√3、PigLatinFilter操作√4、PigLatinGroup操作√5、PigLatinDUMP、Store操作√PigLatin常用操作PigLatin是一種面向數(shù)據(jù)流的語言。與SQL相比,PigLatin更容易跟蹤變量值的變化情況。PigLatin常用的操作命令及功能描述見下表:PigLatin常用操作—LOADLOAD命令用來載入原始數(shù)據(jù)。例如:A=LOAD‘classdata.txt’USINGPigStorage(‘:’)AS(name,score:int,class);該命令解釋如下:載入數(shù)據(jù)文件classdata.txt,進而形成Tuple關系數(shù)據(jù)。USING子句指明從數(shù)據(jù)文件讀取Tuple時,以“:”作為分隔符讀取各字段; Pig默認使用制表符’\t’作為分隔符;如果分隔符不是’\t’,則在USING子句中通過內置函數(shù)PigStorage指明。AS子句指明載入的關系中包含四個字段,分別命名為id、name、score和class,其中score的數(shù)據(jù)類型為int。
如果沒有指定AS語句,那么關系中的各字段只能使用位置來表示。LOAD命令中的USING語句和AS語句都是可選項。PigLatin常用操作—FOREACHFOREACH...GENERATE用來逐一處理每個Tuple。例如:
B=FOREACHAGENERATEname,score;該命令對指定的BagA(前面通過LOAD生成的Bag)中的每個Tuple逐一處理,生成(name,score)形式的新Bag值并賦給變量B。PigLatin常用操作—FILTERFILTER...BY命令用來過濾數(shù)據(jù),過濾掉那些不需要的數(shù)據(jù),保留感興趣的數(shù)據(jù)集。例如,以下命令過濾出B中滿足score在80至90之間的Tuple,將它們保存在變量C中:
C=FILTERBBYscore>=80ANDscore<=90;PigLatin常用操作—GROUPGROUP...BY語句用來對關系中的數(shù)據(jù)進行分組。例如,下列命令將A中的關系數(shù)據(jù)按class字段值進行分組:
B=GROUPABYclass;分組結果如下:(class1,{(John,100,class1),(Linda,95,class1)})(class2,{(Marry,99,class2),(Smith,98,class2),(Jane,96,class2)})(class3,{(Peter,97,class3)})GROUP語句會創(chuàng)建一個新關系:關系中的第一個字段是分組字段,其別名為group;第二個字段是包含與原關系模式相同的被分組字段的包。PigLatin常用操作—GROUPGROUP不僅支持對鍵值進行分組(即把鍵值相同的元組放在一起),還可以使用表達式作為分組鍵。例如:現(xiàn)有關系A如下:(Joe,cherry)(Ali,apple)(Joe,banana)(Eve,apple)下面的語句按第二個字段的長度進行分組: B=GROUPABYSIZE($1);結果為:(5,{(Ali,apple),(Eve,apple)})(6,{(Joe,cherry),(Joe,banana)})PigLatin常用操作—GROUPGROUP語句還提供特殊的分組操作:ALL分組。ALL將一個關系中所有元組放入一個包。例如:C=GROUPAALL;其結果為:
(all,{(Joe,cherry),{(Ali,apple),(Joe,banana),(Eve,apple)})在這種GROUP語句中,沒有關鍵詞BY。ALL分組常用于計算關系中的元組個數(shù)。PigLatin常用操作—DUMP和STOREDUMP語句用來計算結果,并將結果輸出到屏幕。其語法格式為:DUMP<變量名>STORE語句用來計算結果,并將結果輸出到指定文件。其語法格式為:
STORE<變量名>INTO‘<文件名>’例如:
DUMPB STOREBINTO‘pig.dat’THANKSFORYOURTIME中國高科集團股份有限公司CHINAHI-TECHGROUPCO.,LTD.樂·教育|智·全球Embraceeducation
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江陽城建職業(yè)學院《嵌入式系統(tǒng)原理與實驗》2023-2024學年第二學期期末試卷
- 泰州職業(yè)技術學院《管理基礎(雙語)》2023-2024學年第二學期期末試卷
- 湘潭理工學院《機械課程設計》2023-2024學年第二學期期末試卷
- 福建中醫(yī)藥大學《水泥混凝土及制備技術》2023-2024學年第二學期期末試卷
- 漢中職業(yè)技術學院《高分子材料科學前沿與實踐》2023-2024學年第二學期期末試卷
- 新星職業(yè)技術學院《復合材料導論》2023-2024學年第二學期期末試卷
- 內蒙古鴻德文理學院《物理化學實驗Ⅳ》2023-2024學年第二學期期末試卷
- 淮北師范大學《現(xiàn)代陶瓷技術進展》2023-2024學年第二學期期末試卷
- 2026河南漯河市文學藝術界聯(lián)合會所屬事業(yè)單位人才引進1人備考題庫及答案詳解一套
- 2026湖北荊州市長江大學城市建設學院人才招聘備考題庫及答案詳解(奪冠系列)
- 淺談國土年度變更調查及林草濕荒監(jiān)測區(qū)別
- 《 證券投資學》教學方案
- 場地規(guī)劃布局手冊
- 南昌地鐵培訓課件
- 升降平臺車輛安全培訓課件
- 2025年工業(yè)和信息化局公務員面試技巧與模擬題解析
- 部編版2025年八年級上冊道德與法治教材習題參考答案匯編
- 止血材料行業(yè)分析研究報告
- 湖南省婁底市新化縣2024-2025學年高一上學期期末考試生物試題(解析版)
- 軍犬專業(yè)考試題及答案
- (一模)烏魯木齊地區(qū)2025年高三年級第一次質量英語試卷(含答案)
評論
0/150
提交評論