Operatörer i Apache Pig: Del 1- Relationsoperatörer



Detta inlägg beskriver om operatörer i Apache Pig. Ta en titt på det här inlägget för operatörer i Apache Pig: del 1 - relationsoperatörer.

Det här inlägget handlar om operatörerna i Apache Pig.Apache Pig gör det också möjligt för dig att skriva komplexa datatransformationer utan kunskap om Java, vilket gör det väldigt viktigt för .Låt oss ta en snabb titt på vad Pig and Pig Latin är och de olika lägena de kan manövreras innan vi går vidare till Operators.

Vad är Apache Pig?

Apache Pig är ett procedurspråk på hög nivå för att fråga stora datamängder med Hadoop och Map Reduce Platform. Det är ett Java-paket där skript kan köras från alla språkimplementeringar som körs på JVM. Detta används mycket i iterativa processer.





Apache Pig förenklar användningen av Hadoop genom att tillåta SQL-liknande frågor till ett distribuerat dataset och gör det möjligt att skapa komplexa uppgifter för att bearbeta stora datamängder snabbt och effektivt. Den bästa funktionen hos Pig är att den stöder många relationsfunktioner som Join, Group och Aggregate.

Jag vet att gris låter mycket mer som ett ETL-verktyg och det har många funktioner som är vanliga med ETL-verktyg. Men fördelen med Pig over ETL-verktyg är att den kan köras på många servrar samtidigt.



Vad är Apache Pig Latin?

Apache Pig skapar en enklare procedurell språkabstraktion över Map Reduce för att exponera ett mer Structured Query Language (SQL) -liknande gränssnitt för Hadoop-applikationer som heter Apache Pig Latin, så istället för att skriva ett separat Map Reduce-program kan du skriva ett enda skript i Apache Gris Latin som automatiskt parallelliseras och distribueras över ett kluster. Med enkla ord, Pig Latin, är en sekvens av enkla uttalanden som tar en input och producerar en output. In- och utdata är sammansatta av påsar, kartor, tuplar och skalar.

Apache Pig Execution Modes:

Apache Pig har två exekveringslägen:

hur man hittar arraylängd i javascript
  • Lokalt läge

I ”Lokalt läge” skulle källdata plockas från den lokala katalogen i ditt datorsystem. MapReduce-läget kan specificeras med kommandot ”pig –x local”.



Operatörer i Apache Pig - 1

  • MapReduce-läge:

För att köra Pig i MapReduce-läge behöver du tillgång till Hadoop-kluster och HDFS-installation. MapReduce-läget kan anges med kommandot ”gris”.

Apache Pig Operators:

Apache Pig Operators är ett procedurspråk på hög nivå för att fråga stora datamängder med Hadoop och Map Reduce Platform. Ett Pig Latin-uttalande är en operatör som tar en relation som input och producerar en annan relation som output. Dessa operatörer är de viktigaste verktygen för Pig Latin för att hantera data. De låter dig omvandla den genom att sortera, gruppera, gå med, projicera och filtrera.

Låt oss skapa två filer för att köra kommandona:

Vi har två filer med namnet ”första” och ”andra.” Den första filen innehåller tre fält: användare, webbadress och id.

Den andra filen innehåller två fält: url & rating. Dessa två filer är CSV-filer.

Apache Pig-operatörerna kan klassificeras som: Relationell och diagnostisk.

Relationsoperatörer:

Relationsoperatörer är de viktigaste verktygen som Pig Latin tillhandahåller för att hantera data. Det låter dig omvandla data genom att sortera, gruppera, gå med, projicera och filtrera. Detta avsnitt täcker de grundläggande relationsoperatörerna.

LADDA:

LOAD-operatören används för att ladda data från filsystemet eller HDFS-lagring till en Pig-relation.

I detta exempel, Load-operatören laddar data från filen 'först' för att bilda relation 'loading1'. Fältnamnen är användare, url, id.

FÖR VARJE:

Den här operatören genererar datatransformationer baserat på datakolumner. Den används för att lägga till eller ta bort fält från en relation. Använd FOREACH-GENERATE för att arbeta med datakolumner.

Resultat FÖR VARJE:

FILTRERA:

Denna operatör väljer tuplar från en relation baserat på ett villkor.

I detta exempel, vi filtrerar posten från 'loading1' när villkoret 'id' är större än 8.

FILTER Resultat:

ANSLUTA SIG:

JOIN-operator används för att utföra en inre, equijoin-koppling av två eller flera relationer baserat på gemensamma fältvärden. JOIN-operatören utför alltid en inre koppling. Inre joins ignorerar null-nycklar, så det är vettigt att filtrera bort dem innan de går med.

I detta exempel, gå med i de två relationerna baserat på kolumnen 'url' från 'loading1' och 'loading2'.

förhållandet mellan java och javascript

GÅ MED Resultat:

SORTERA EFTER:

Order By används för att sortera en relation baserat på ett eller flera fält. Du kan sortera i stigande eller fallande ordning med ASC- och DESC-nyckelord.

I exemplet nedan sorterar vi data i loading2 i stigande ordning i betygsfältet.

BESTÄLLA PÅ Resultat :

DISTINKT:

Distinct tar bort dubbla tuples i en relation. Låt oss ta en inmatningsfil enligt nedan, vilken har amr, skit, 8 och amr, myblog, 10 två gånger i filen. När vi använder distinkt på data i den här filen tas dubbla poster bort.

DISTINCT Resultat:

LAGRA:

Store används för att spara resultat i filsystemet.

Här sparar vi laddning3 data i en fil med namnet lagring på HDFS.

LAGER Resultat:

GRUPP:

GROUP-operatören grupperar tapparna med samma gruppnyckel (nyckelfält). Nyckelfältet blir en tupel om gruppnyckeln har mer än ett fält, annars är det samma typ som gruppnyckeln. Resultatet av en GROUP-operation är en relation som inkluderar en tupel per grupp.

I detta exempel, grupp th

förhållandet ”loading1” efter kolumn url.

GROUP-resultat:

COGROUP:

COGROUP är samma som GROUP-operatör. För läsbarhet använder programmerare vanligtvis GROUP när bara en relation är inblandad och COGROUP när flera relationer är inblandade.

I det här exemplet grupperar du 'loading1' och 'loading2' efter url-fältet i båda relationerna.

COGROUP Resultat:

KORSA:

CROSS-operatören används för att beräkna tvärprodukten (kartesisk produkt) av två eller flera relationer.

Tillämpa tvärprodukt vid loading1 och loading2.

CROSS Resultat:

BEGRÄNSA:

LIMIT-operatören används för att begränsa antalet utmatningstubbar. Om det angivna antalet utmatningstubbar är lika med eller överstiger antalet tupar i relationen, kommer utmatningen att inkludera alla tuplar i relationen.

LIMIT Resultat:

DELA:

SPLIT-operatören används för att dela upp innehållet i en relation i två eller flera relationer baserat på något uttryck. Beroende på de villkor som anges i uttrycket.

Dela upp loading2 i två relationer x och y. x-relation skapad genom loading2 innehåller de fält som betyget är större än 8 och y-förhållandet innehåller fält som är mindre än eller lika med 8.

Har du en fråga till oss? Vänligen nämna dem i kommentarfältet så återkommer vi till dig.

Relaterade inlägg:

metoden system.exit avslutar applikationen.

Operatörer i Apache Pig - Diagnostic Operators

Steg för att skapa UDF i Apache Pig