Comenzile de porci - Comenzi de bază și avansate cu sfaturi și trucuri

Cuprins:

Anonim

Introducere în comenzile porcului

Apache Pig un instrument / platformă care este utilizat pentru a analiza seturi de date mari și pentru a efectua o serie lungă de operații de date. Porcul se folosește cu Hadoop. Toate scripturile de porci se transformă intern în sarcini de reducere a hărții și apoi sunt executate. Poate gestiona date structurate, semi-structurate și nestructurate. Magazinele de porci, rezultatul său în HDFS. În acest articol, aflăm mai multe tipuri de comenzi porcine.

Iată câteva caracteristici ale porcului:

  1. Auto-Optimizare: Porcul poate optimiza lucrările de execuție, utilizatorul are libertatea de a se concentra pe semantică.
  2. Ușor de programat: Pig oferă limbă / dialect la nivel înalt cunoscut sub numele de Latin Pig, care este ușor de scris. Pig Latin oferă mulți operatori, pe care programatorul îi poate folosi pentru procesarea datelor. Programatorul are flexibilitatea de a-și scrie propriile funcții.
  3. Extensibil: Pig facilitează crearea unei funcții personalizate, care se numește UDF (funcții definite de utilizator), ceea ce face ca programatorii să poată atinge rapid și ușor orice cerință de procesare. Scriptura de porc rulează pe o cochilie cunoscută sub numele de grunt.

De ce porunci porci?

Programatorii care nu sunt buni cu Java, de obicei se luptă să scrie programe în Hadoop, adică să scrie sarcini de reducere a hărții. Pentru ei, Latin Pig, care seamănă destul de mult cu limbajul SQL, este o binefacere. Abordarea sa multi-interogare reduce lungimea codului.
Deci, în general, modul său concis și eficient de programare. Comenzile Pig pot invoca cod în multe limbi precum JRuby, Jython și Java.

Arhitectura comenzilor de porci

Toate scripturile scrise în Pig-Latin peste coajă grunt se duc la analizor pentru a verifica sintaxa și se întâmplă și alte verificări diverse. Rezultatul analizorului este un DAG. Acest DAG este apoi trecut la Optimizer, care apoi realizează optimizarea logică, cum ar fi proiecția și împinge în jos. Apoi compilatorul respectă planul logic pentru lucrările MapReduce. În cele din urmă, aceste joburi MapReduce sunt trimise la Hadoop în ordine sortată. Aceste joburi se execută și produc rezultatele dorite.

Modelul de date Pig-Latin este complet cuibărit și permite tipuri de date complexe precum harta și tuple.

Orice valoare unică a limbii latine porc (indiferent de tipul de date) este cunoscută sub numele de Atom.

Comenzile de bază ale porcilor

Haideți să aruncăm o privire la unele dintre comenzile Basic Pig care sunt prezentate mai jos: -

1. Fs: Acesta va lista tot fișierul din HDFS

grunt> fs –ls

2. Clear: Aceasta va șterge shell-ul Grunt interactiv.

mormăi> limpezi

3. Istoric:

Această comandă arată comenzile executate până acum.
grunt> istorie

4. Citirea datelor: Presupunând că datele se află în HDFS și trebuie să citim date către Pig.

grunt> college_students = LOAD 'hdfs: // localhost: 9000 / pig_data / college_data.txt'

UTILIZAREA PigStorage (', ')

as (id: int, prenume: chararray, prenume: chararray, telefon: chararray,

oraș: chararray);

PigStorage () este funcția care încarcă și stochează date ca fișiere text structurate.

5. Stocarea datelor: Operatorul de stocare este utilizat pentru stocarea datelor procesate / încărcate.

grunt> STORE college_students INTO 'hdfs: // localhost: 9000 / pig_Output /' USING PigStorage (', ');

Aici, „/ pig_Output /” este directorul în care relația trebuie să fie stocată.

6. Operator de descărcare de gestiune: Această comandă este utilizată pentru afișarea rezultatelor pe ecran. De obicei ajută la depanare.

grunt> Dump college_students;

7. Descrieți operatorul: ajută programatorul să vizualizeze schema relației.

grunt> descrie colegii_studenti;

8. Explicați: Această comandă ajută la revizuirea planurilor de execuție logice, fizice și de reducere a hărții.

grunt> explica facultatea_studenti;

9. Operator ilustrat: Acest lucru oferă execuția pas cu pas a declarațiilor din comenzile Pig.

grunt> ilustreaza colegii_studenti;

Comenzile intermediare ale porcilor

1. Grup: Această comandă Pig lucrează la gruparea datelor cu aceeași cheie.

grunt> group_data = GROUP__students pe nume;

2. COGROUP: funcționează similar cu operatorul de grup. Principala diferență între grupul și operatorul grupului este acela că operatorul de grup este folosit de obicei cu o relație, în timp ce cogrupul este utilizat cu mai multe relații.

3. Alăturați-vă: este folosit pentru a combina două sau mai multe relații.

Exemplu: Pentru a efectua auto-unire, să spunem că relația „client” este încărcată din comenzile HDFS tp pig în două relații clienți1 și clienți2.

grunt> clients3 = ÎNSCRIE-TE CLIENTI1 BY id, clients2 BY id;

Alăturarea poate fi auto-unire, alăturare interioară, alătura exterioară.

4. Cross: Această comandă de porc calculează produsul transversală a două sau mai multe relații.

grunt> cross_data = clienți CROSS, comenzi;

5. Uniune: Fuzionează două relații. Condiția pentru fuziune este aceea că atât coloanele relațiilor, cât și domeniile trebuie să fie identice.

grunt> student = UNION student1, student2;

Comenzi avansate de porci

Haideți să aruncăm o privire la unele dintre comenzile avansate Pig care sunt prezentate mai jos:

1. Filtrare: aceasta ajută la filtrarea tuplelor în afara relației, pe baza anumitor condiții.

filter_data = FILTER college_students BY city == 'Chennai';

2. Distins: Aceasta ajută la îndepărtarea tuplurilor redundante din relație.

grunt> distinct_data = DISTINCT College_students;

Această filtrare va crea un nou nume de relație „distinct_data”

3. Preacțiune: Aceasta ajută la generarea transformării datelor pe baza datelor din coloană.

grunt> foreach_data = FOREACH student_details GENERATE id, vârstă, oraș;

Aceasta va obține valorile ID, vârstă și oraș ale fiecărui student din relația student_details și, prin urmare, îl va stoca într-o altă relație numită foreach_data.

4. Ordine după: Această comandă afișează rezultatul într-o comandă sortată pe baza unuia sau mai multor câmpuri.

grunt> order_by_data = ORDINEA colegilor_studenti DE Vârsta DESC;

Aceasta va sorta relația „studenți de colegiu” în ordine descrescătoare în funcție de vârstă.

5. Limită: Această comandă devine limitată nr. de tupluri din relație.

grunt> limit_data = LIMIT student_details 4;

Sfaturi și trucuri

Mai jos sunt diferite sfaturi și trucuri ale comenzilor Pig: -

1. Activați compresia la intrare și ieșire:

set input.compression.enabled true;

set output.compression.enabled true;

Mai sus, liniile de cod menționate trebuie să fie la începutul scriptului, astfel încât să permită Porțile Pig să citească fișiere comprimate sau să genereze fișiere comprimate ca ieșire.

2. Alăturați-vă relațiilor multiple:

Pentru a efectua unirea din stânga pe trei relații (input1, input2, input3), trebuie să optați pentru SQL. Se datorează faptului că îmbinarea exterioară nu este acceptată de Pig pe mai mult de două tabele.

Mai degrabă efectuați stânga pentru a vă alătura în doi pași cum ar fi:

date1 = ÎNREGISTRARE intrare1 BY Tastă STÂCHIE, intrare2 BY cheie;

date2 = ÎNREGISTRARE date1 BY input1 :: tasta LEFT, input3 BY key;

Aceasta înseamnă două locuri de muncă pentru reducerea hărții.

Pentru a efectua mai eficient sarcina de mai sus, se poate opta pentru „Cogroup”. Cogrup poate uni relații multiple. În mod implicit, decuplarea se alătură.

Concluzie

Porcul este un limbaj procedural, utilizat în general de oamenii de știință de date pentru efectuarea procesării ad-hoc și prototiparea rapidă. Este un instrument excelent de prelucrare a datelor ETL și mare. Scripturile de porci pot fi invocate de alte limbi și invers. Prin urmare, Comenzile Pig pot fi utilizate pentru a construi aplicații mai mari și complexe.

Articole recomandate

Acesta a fost un ghid pentru comenzile Pig. Aici am discutat despre comenzi de bază, precum și avansate Pig și unele comenzi Pig imediat. De asemenea, puteți consulta articolul următor pentru a afla mai multe -

  1. Comenzi Adobe Photoshop
  2. Comenzile Tableau
  3. Cheat sheet SQL (comenzi, sfaturi gratuite și trucuri)
  4. Comenzi VBA-Atingeri de finalizare
  5. Diferite operațiuni legate de Tuple