Mga Operator sa Apache Pig: Bahagi 1- Mga Kaugnay na Operator



Inilalarawan ng post na ito ang tungkol sa Mga Operator sa Apache Pig. Tingnan ang post na ito para sa Mga Operator sa Apache Pig: Bahagi 1 - Mga Kaugnay na Operator.

Ang post na ito ay tungkol sa mga operator sa Apache Pig.Pinapayagan ka rin ng Apache Pig na magsulat ng mga kumplikadong pagbabago ng data nang walang kaalaman sa Java, ginagawa itong talagang mahalaga para sa .Tingnan natin nang mabilis kung ano ang Pig at Pig Latin at ang iba't ibang mga mode kung saan sila maaaring mapatakbo, bago magtungo sa Mga Operator.

Ano ang Apache Pig?

Ang Apache Pig ay isang mataas na antas na wikang pamproseso para sa pagtatanong ng malalaking hanay ng data gamit ang Hadoop at ang Map Reduce Platform. Ito ay isang pakete ng Java, kung saan ang mga script ay maaaring maipatupad mula sa anumang pagpapatupad ng wika na tumatakbo sa JVM. Ito ay lubos na ginagamit sa mga umuulit na proseso.





Pinapasimple ng Apache Pig ang paggamit ng Hadoop sa pamamagitan ng pagpapahintulot sa mga query na tulad ng SQL sa isang ipinamamahagi na dataset at ginagawang posible upang lumikha ng mga kumplikadong gawain upang maproseso ang malalaking dami ng data nang mabilis at mabisa. Ang pinakamagandang tampok ng Pig ay, sinusuportahan nito ang maraming mga tampok na nauugnay tulad ng Sumali, Grupo at Pinagsama-sama.

Alam kong ang tunog ng Pig ay mas katulad ng isang tool na ETL at mayroon itong maraming mga tampok na karaniwan sa mga tool ng ETL. Ngunit ang bentahe ng Pig sa mga tool ng ETL ay maaari itong tumakbo sa maraming mga server nang sabay-sabay.



Ano ang Apache Pig Latin?

Lumikha ang Apache Pig ng isang mas simpleng abstraction ng wikang pamproseso sa Map Reduce upang mailantad ang isang mas istrakturang Query Wika (SQL) na interface para sa mga aplikasyon ng Hadoop na tinatawag na Apache Pig Latin, Kaya sa halip na magsulat ng isang hiwalay na application na Map Reduce, maaari kang magsulat ng isang iskrip sa Apache Baboy Latin na awtomatikong parallelized at ipinamamahagi sa isang kumpol. Sa mga simpleng salita, ang Pig Latin, ay isang pagkakasunud-sunod ng mga simpleng pahayag na kumukuha ng isang input at gumagawa ng isang output. Ang data ng pag-input at output ay binubuo ng mga bag, mapa, tuple at scalar.

ay isang has java

Mga Mode ng Pagpapatupad ng Apache Pig:

Ang Apache Pig ay may dalawang mga mode sa pagpapatupad:

  • Lokal na Mode

Sa 'Local Mode', ang data ng mapagkukunan ay pipiliin mula sa lokal na direktoryo sa iyong computer system. Ang mode na MapReduce ay maaaring tukuyin gamit ang 'pig –x local' na utos.



Ang mga operator sa Apache Pig - 1

  • MapReduce Mode:

Upang patakbuhin ang Pig sa MapReduce mode, kailangan mo ng pag-access sa Hadoop cluster at pag-install ng HDFS. Ang mode na MapReduce ay maaaring tukuyin gamit ang 'baboy' na utos.

Mga Operator ng Apache Pig:

Ang Apache Pig Operators ay isang mataas na antas na wikang pamproseso para sa pagtatanong ng malalaking hanay ng data gamit ang Hadoop at ang Map Reduce Platform. Ang pahayag ng Pig Latin ay isang operator na tumatagal ng isang ugnayan bilang input at gumagawa ng isa pang ugnayan bilang output. Ang mga operator na ito ay ang pangunahing mga tool para sa Pig Latin ay nagbibigay upang mapatakbo ang data. Pinapayagan ka nilang ibahin ito sa pamamagitan ng pag-uuri, pagpapangkat, pagsali, pag-project, at pag-filter.

Lumikha tayo ng dalawang mga file upang patakbuhin ang mga utos:

Mayroon kaming dalawang mga file na may pangalang ‘una’ at ‘pangalawa.’ Ang unang file ay naglalaman ng tatlong mga patlang: user, url & id.

Naglalaman ang pangalawang file ng dalawang mga patlang: url at rating. Ang dalawang file na ito ay mga CSV file.

Ang mga operator ng Apache Pig ay maaaring maiuri bilang: Kaugnay at Diagnostic.

Mga Kaugnay na Operator:

Ang mga nauugnay na operator ay ang pangunahing tool na ibinibigay ng Pig Latin upang mapatakbo ang data. Pinapayagan kang baguhin ang data sa pamamagitan ng pag-uuri, pagpapangkat, pagsali, pag-project at pag-filter. Saklaw ng seksyong ito ang pangunahing mga operator ng pakikipag-ugnay.

LOAD:

Ang LOAD operator ay ginagamit upang mai-load ang data mula sa file system o imbakan ng HDFS sa isang kaugnay ng Baboy.

Sa halimbawang ito, ang Load operator ay naglo-load ng data mula sa file na 'una' upang mabuo ang kaugnay na 'loading1'. Ang mga pangalan ng patlang ay gumagamit, url, id.

FOREACH:

Bumubuo ang operator na ito ng mga pagbabago sa data batay sa mga haligi ng data. Ginagamit ito upang magdagdag o mag-alis ng mga patlang mula sa isang ugnayan. Gumamit ng operasyon na FOREACH-GENERATE upang gumana sa mga haligi ng data.

Resulta ng FOREACH:

Saringan:

Ang operator na ito ay pipili ng mga tuple mula sa isang ugnayan batay sa isang kundisyon.

Sa halimbawang ito, sinasala namin ang tala mula sa 'loading1' kapag ang kundisyong 'id' ay mas malaki sa 8.

Resulta ng Filter:

SUMALI:

Ang JOIN operator ay ginagamit upang magsagawa ng panloob, equijoin na sumali sa dalawa o higit pang mga relasyon batay sa mga karaniwang halaga ng patlang. Laging gumaganap ang panloob na operator ng isang panloob na pagsali. Sumali ang panloob na huwag pansinin ang mga null key, kaya makatuwiran na i-filter ang mga ito bago sumali.

Sa halimbawang ito, sumali sa dalawang ugnayan batay sa haligi na 'url' mula sa 'loading1' at 'loading2'.

SUMALI NG Resulta:

INIUTOS NI:

Ang Order By ay ginagamit upang pag-uri-uriin ang isang ugnayan batay sa isa o higit pang mga patlang. Maaari mong gawin ang pag-uuri sa pataas o pababang pagkakasunud-sunod gamit ang mga keyword na ASC at DESC.

Sa halimbawa sa ibaba, inaayos namin ang data sa paglo-load2 sa pataas na pagkakasunud-sunod sa patlang ng mga rating.

NG ORDER NG Resulta :

DISTINCT:

Tinatanggal ng pagkakaiba ang mga duplicate na tuple sa isang ugnayan. Kumuha ng isang input file tulad ng sa ibaba, na mayroon amr, basura, 8 at amr, myblog, 10 dalawang beses sa file. Kapag nag-apply kami ng naiiba sa data sa file na ito, aalisin ang mga duplicate na entry.

DISTINCT Resulta:

Tindahan:

Ginagamit ang store upang makatipid ng mga resulta sa file system.

Dito tayo nagtitipid naglo-load3 data sa isang file na pinangalanan pag-iimbak sa HDFS.

Resulta ng Tindahan:

GRUPO:

Pinagsasama ng GROUP operator ang mga tuple na may parehong key ng pangkat (key field). Ang pangunahing patlang ay magiging isang tuple kung ang key ng pangkat ay may higit sa isang patlang, kung hindi man ito ay ang parehong uri tulad ng sa key ng pangkat. Ang resulta ng isang operasyon ng GROUP ay isang ugnayan na may kasamang isang tuple bawat pangkat.

Sa halimbawang ito, pangkat ika

nauugnay ang ‘loading1’ ayon sa url ng haligi.

Resulta ng GROUP:

COGROUP:

Ang COGROUP ay kapareho ng GROUP operator. Para sa kakayahang mabasa, ang mga programmer ay karaniwang gumagamit ng GROUP kapag ang isang ugnayan lamang ang nasasangkot at COGROUP kapag ang maraming mga relasyon ay naiugnay.

Sa halimbawang ito pangkatin ang 'loading1' at 'loading2' ayon sa url na patlang sa parehong mga relasyon.

Resulta ng COGROUP:

CROSS:

Ginagamit ang operator ng CROSS upang makalkula ang cross product (produktong Cartesian) ng dalawa o higit pang mga relasyon.

Paglalapat ng cross product sa loading1 at loading2.

Resulta ng CROSS:

LIMIT:

Ginagamit ang operator ng LIMIT upang limitahan ang bilang ng mga output tuple. Kung ang tinukoy na bilang ng mga output tuple ay katumbas o lumampas sa bilang ng mga tuple sa ugnayan, isasama ng output ang lahat ng mga tuple na nauugnay.

Resulta ng LIMIT:

SPLIT:

Ang operator ng SPLIT ay ginagamit upang hatiin ang mga nilalaman ng isang ugnayan sa dalawa o higit pang mga relasyon batay sa ilang pagpapahayag. Nakasalalay sa mga kundisyon na nakasaad sa pagpapahayag.

Hatiin ang paglo-load2 sa dalawang ugnayan x at y. Ang ugnayan na nilikha ng paglo-load2 ay naglalaman ng mga patlang na ang rating ay mas malaki sa 8 at ang ugnayan na naglalaman ng mga patlang na ang rating ay mas mababa sa o katumbas ng 8.

May tanong ba sa amin? Mangyaring banggitin ang mga ito sa seksyon ng mga komento at babalikan ka namin.

Mga Kaugnay na Post:

Mga Operator sa Apache Pig - Mga Diagnostic Operator

ano ang ginagawa ng .innerhtml

Mga Hakbang upang Lumikha ng UDF sa Apache Pig