Operadors d'Apache Pig: primera part: operadors relacionals



Aquest post descriu els operadors d'Apache Pig. Mireu aquest missatge sobre Operadors a Apache Pig: Part 1 - Operadors relacionals.

Aquesta publicació tracta sobre els operadors d'Apache Pig.Apache Pig també us permet escriure transformacions de dades complexes sense el coneixement de Java, cosa que el fa realment important per a .Anem a fer una ullada ràpida a què és Pig and Pig Latin i els diferents modes en què es poden operar, abans de dirigir-nos a Operators.

Què és Apache Pig?

Apache Pig és un llenguatge de procediment d'alt nivell per a la consulta de grans conjunts de dades mitjançant Hadoop i Map Reduce Platform. És un paquet Java, on els scripts es poden executar des de qualsevol implementació de llenguatge que s’executi a la JVM. Això s’utilitza molt en processos iteratius.





Apache Pig simplifica l’ús d’Hadoop en permetre consultes similars a SQL a un conjunt de dades distribuït i permet crear tasques complexes per processar grans volums de dades de forma ràpida i eficaç. La millor característica de Pig és que dóna suport a moltes funcions relacionals com Join, Group i Aggregate.

Sé que Pig sembla molt més com una eina ETL i té moltes funcions comunes amb les eines ETL. Però l'avantatge de Pig sobre les eines ETL és que pot funcionar en molts servidors simultàniament.



Què és Apache Pig Latin?

Apache Pig crea una abstracció del llenguatge processal més senzilla sobre Map Reduce per exposar una interfície més semblant al llenguatge de consulta estructurat (SQL) per a aplicacions Hadoop anomenada Apache Pig Latin, de manera que, en lloc d’escriure una aplicació Map Reduce independent, podeu escriure un script únic a Apache Porc llatí que es paral·lela automàticament i es distribueix en un clúster. En paraules simples, Pig Latin, és una seqüència d’enunciats simples que prenen una entrada i produeixen una sortida. Les dades d’entrada i sortida es componen de bosses, mapes, tuples i escalars.

Modes d'execució d'Apache Pig:

Apache Pig té dos modes d’execució:

  • Mode local

A 'Mode local', les dades d'origen es recolliran al directori local del vostre sistema informàtic. El mode MapReduce es pot especificar mitjançant l’ordre ‘pig -x local’.



Operadors a Apache Pig - 1

  • Mode MapReduce:

Per executar Pig en mode MapReduce, heu d’accedir al clúster Hadoop i a la instal·lació HDFS. El mode MapReduce es pot especificar mitjançant l’ordre ‘pig’.

Operadors d'Apache Pig:

L'Apache Pig Operators és un llenguatge de procediment d'alt nivell per a la consulta de grans conjunts de dades mitjançant Hadoop i Map Reduce Platform. Una declaració Pig Latin és un operador que pren una relació com a entrada i produeix una altra relació com a sortida. Aquests operadors són les principals eines que proporciona Pig Latin per operar amb les dades. Permeten transformar-lo ordenant, agrupant, unint, projectant i filtrant.

Creem dos fitxers per executar les ordres:

Tenim dos fitxers amb el nom 'primer' i 'segon'. El primer fitxer conté tres camps: usuari, URL i identificador.

El segon fitxer conté dos camps: URL i classificació. Aquests dos fitxers són fitxers CSV.

Els operadors Apache Pig es poden classificar com: Relacional i de diagnòstic.

Operadors relacionals:

Els operadors relacionals són les principals eines que Pig Latin proporciona per operar amb les dades. Permet transformar les dades ordenant, agrupant, unint, projectant i filtrant. Aquesta secció cobreix els operadors relacionals bàsics.

CÀRREGA:

L'operador LOAD s'utilitza per carregar les dades del sistema de fitxers o l'emmagatzematge HDFS en una relació Pig.

En aquest exemple, l’operador Load carrega les dades del fitxer ‘first’ per formar la relació ‘loading1’. Els noms dels camps són usuari, URL, identificador.

PER CADASCÚ:

Aquest operador genera transformacions de dades basades en columnes de dades. S'utilitza per afegir o eliminar camps d'una relació. Utilitzeu l'operació FOREACH-GENERATE per treballar amb columnes de dades.

exemple de regressió logística en python

Resultat FOREACH:

FILTRE:

Aquest operador selecciona tuples d'una relació basada en una condició.

En aquest exemple, estem filtrant el registre de 'loading1' quan la condició 'id' és superior a 8.

FILTER Resultat:

UNEIX-TE:

L’operador JOIN s’utilitza per realitzar una unió equijoin interior de dues o més relacions basades en valors de camp comuns. L'operador JOIN sempre realitza una unió interior. Les combinacions interiors ignoren les claus nul·les, de manera que té sentit filtrar-les abans de la combinació.

En aquest exemple, uniu les dues relacions basades en la columna 'url' de 'loading1' i 'loading2'.

UNEIX-te Resultat:

DEMANAT PER:

Ordre per s'utilitza per ordenar una relació basada en un o més camps. Podeu fer l’ordenació en ordre ascendent o descendent mitjançant paraules clau ASC i DESC.

A l'exemple següent, estem ordenant les dades a loading2 per ordre ascendent al camp de classificació.

ORDENAR PER Resultat :

DISTINGUIR:

Distinct elimina les tuples duplicades en una relació. Prenem un fitxer d'entrada tal com es mostra a continuació, que té amr, merda, 8 i amr, myblog, 10 dues vegades al fitxer. Quan apliquem diferents dades a aquest fitxer, se suprimeixen les entrades duplicades.

Resultat DISTINGUT:

BOTIGA:

Store s’utilitza per desar els resultats al sistema de fitxers.

Aquí estem estalviant carregant3 dades en un fitxer anomenat emmagatzematge a HDFS.

per a què serveix la serialització a Java

RESULTAT DE LA BOTIGA:

GRUP:

L'operador GROUP agrupa les tuples amb la mateixa clau de grup (camp de clau). El camp de la clau serà una tupla si la clau de grup té més d’un camp, en cas contrari serà del mateix tipus que la de la clau de grup. El resultat d’una operació de GRUP és una relació que inclou una tupla per grup.

En aquest exemple, grup th

e relació 'loading1' per URL de columna.

GRUP Resultat:

com utilitzar swing java

COGROUP:

COGROUP és el mateix que l'operador GROUP. Per facilitar la llegibilitat, els programadors solen utilitzar GROUP quan només hi ha una relació implicada i COGROUP quan hi participen múltiples relacions.

En aquest exemple, agrupeu el camp 'loading1' i 'loading2' per URL en ambdues relacions.

Resultat COGROUP:

CREU:

L'operador CROSS s'utilitza per calcular el producte creuat (producte cartesià) de dues o més relacions.

Aplicació de productes creuats a loading1 i loading2.

Resultat CROSS:

LÍMIT:

L'operador LIMIT s'utilitza per limitar el nombre de tuples de sortida. Si el nombre especificat de tuples de sortida és igual o superior al nombre de tuples de la relació, la sortida inclourà totes les tuples de la relació.

LÍMIT Resultat:

DIVISIÓ:

L'operador SPLIT s'utilitza per particionar el contingut d'una relació en dues o més relacions basades en alguna expressió. En funció de les condicions indicades a l’expressió.

Dividiu la càrrega2 en dues relacions x i y. La relació x creada per loading2 conté els camps que la classificació és superior a 8 i la relació y conté camps que la classificació és inferior o igual a 8.

Tens alguna pregunta? Esmenteu-los a la secció de comentaris i us respondrem.

Articles Relacionats:

Operadors a Apache Pig - Operadors de diagnòstic

Passos per crear UDF a Apache Pig