Operatori in Apache Pig: Parte 1 - Operatori relazionali



Questo post descrive gli operatori in Apache Pig. Dai un'occhiata a questo post per Operatori in Apache Pig: Parte 1 - Operatori relazionali.

Questo post riguarda gli operatori in Apache Pig.Apache Pig consente inoltre di scrivere complesse trasformazioni di dati senza la conoscenza di Java, rendendolo davvero importante per .Diamo una rapida occhiata a cosa sono Pig e Pig Latin e alle diverse modalità in cui possono essere utilizzati, prima di passare agli Operatori.

Cos'è Apache Pig?

Apache Pig è un linguaggio procedurale di alto livello per eseguire query su set di dati di grandi dimensioni utilizzando Hadoop e la piattaforma Map Reduce. È un pacchetto Java, in cui gli script possono essere eseguiti da qualsiasi implementazione del linguaggio in esecuzione sulla JVM. Questo è molto utilizzato nei processi iterativi.





Apache Pig semplifica l'uso di Hadoop consentendo query di tipo SQL a un set di dati distribuito e rende possibile creare attività complesse per elaborare grandi volumi di dati in modo rapido ed efficace. La caratteristica migliore di Pig è che supporta molte funzionalità relazionali come Join, Group e Aggregate.

So che Pig suona molto più come uno strumento ETL e ha molte caratteristiche comuni agli strumenti ETL. Ma il vantaggio di Pig rispetto agli strumenti ETL è che può essere eseguito su molti server contemporaneamente.



Cos'è Apache Pig Latin?

Apache Pig crea un'astrazione del linguaggio procedurale più semplice su Map Reduce per esporre un'interfaccia più SQL (Structured Query Language) per le applicazioni Hadoop chiamata Apache Pig Latin, quindi invece di scrivere un'applicazione Map Reduce separata, puoi scrivere un singolo script in Apache Pig Latin che viene automaticamente parallelizzato e distribuito in un cluster. In parole semplici, Pig Latin, è una sequenza di semplici istruzioni che prendono un input e producono un output. I dati di input e output sono composti da sacchi, mappe, tuple e scalari.

Modalità di esecuzione di Apache Pig:

Apache Pig ha due modalità di esecuzione:

  • Modalità locale

In 'Modalità locale', i dati di origine verrebbero prelevati dalla directory locale nel sistema del computer. La modalità MapReduce può essere specificata utilizzando il comando 'pig –x local'.



Operatori in Apache Pig - 1

chef vs burattino vs ansible
  • Modalità MapReduce:

Per eseguire Pig in modalità MapReduce, è necessario accedere al cluster Hadoop e all'installazione di HDFS. La modalità MapReduce può essere specificata utilizzando il comando 'pig'.

Operatori Apache Pig:

Gli operatori Apache Pig sono un linguaggio procedurale di alto livello per eseguire query su set di dati di grandi dimensioni utilizzando Hadoop e la piattaforma Map Reduce. Un'istruzione Pig Latin è un operatore che accetta una relazione come input e produce un'altra relazione come output. Questi operatori sono gli strumenti principali che Pig Latin fornisce per operare sui dati. Ti consentono di trasformarlo ordinando, raggruppando, unendo, proiettando e filtrando.

Creiamo due file per eseguire i comandi:

Abbiamo due file con nome 'primo' e 'secondo'. Il primo file contiene tre campi: utente, URL e ID.

Il secondo file contiene due campi: url e rating. Questi due file sono file CSV.

Gli operatori di Apache Pig possono essere classificati come: Relazionale e diagnostico.

Operatori relazionali:

Gli operatori relazionali sono i principali strumenti che Pig Latin fornisce per operare sui dati. Ti consente di trasformare i dati ordinandoli, raggruppandoli, unendoli, proiettandoli e filtrandoli. Questa sezione copre gli operatori relazionali di base.

CARICARE:

L'operatore LOAD viene utilizzato per caricare i dati dal file system o dall'archiviazione HDFS in una relazione Pig.

In questo esempio, l'operatore di caricamento carica i dati dal file 'primo' per formare la relazione 'caricamento1'. I nomi dei campi sono user, url, id.

PER CIASCUNO:

Questo operatore genera trasformazioni di dati in base a colonne di dati. Viene utilizzato per aggiungere o rimuovere campi da una relazione. Utilizzare l'operazione FOREACH-GENERATE per lavorare con le colonne di dati.

Risultato FOREACH:

FILTRO:

Questo operatore seleziona le tuple da una relazione basata su una condizione.

In questo esempio, stiamo filtrando il record da 'caricamento1' quando la condizione 'id' è maggiore di 8.

FILTRO Risultato:

ADERIRE:

L'operatore JOIN viene utilizzato per eseguire un join equijoin interno di due o più relazioni in base a valori di campo comuni. L'operatore JOIN esegue sempre un join interno. I join interni ignorano le chiavi null, quindi ha senso filtrarli prima del join.

In questo esempio, unire le due relazioni in base alla colonna 'url' da 'caricamento1' e 'caricamento2'.

JOIN Risultato:

ORDINATO DA:

Ordina per viene utilizzato per ordinare una relazione in base a uno o più campi. È possibile eseguire l'ordinamento in ordine crescente o decrescente utilizzando le parole chiave ASC e DESC.

Nell'esempio seguente, stiamo ordinando i dati in loading2 in ordine crescente nel campo delle valutazioni.

ORDINA PER Risultato :

DISTINTO:

Distinct rimuove le tuple duplicate in una relazione. Prendiamo un file di input come sotto, che ha amr, merda, 8 e amr, myblog, 10 due volte nel file. Quando applichiamo distinti sui dati in questo file, le voci duplicate vengono rimosse.

Risultato DISTINCT:

NEGOZIO:

Store viene utilizzato per salvare i risultati nel file system.

Qui stiamo salvando caricamento 3 dati in un file denominato immagazzinamento su HDFS.

Risultato NEGOZIO:

GRUPPO:

L'operatore GROUP raggruppa le tuple con la stessa chiave di gruppo (campo chiave). Il campo chiave sarà una tupla se la chiave di gruppo ha più di un campo, altrimenti sarà dello stesso tipo di quella della chiave di gruppo. Il risultato di un'operazione GROUP è una relazione che include una tupla per gruppo.

In questo esempio, gruppo th

La relazione 'caricamento1' tramite l'URL della colonna.

Risultato GROUP:

COGROUP:

COGROUP è lo stesso dell'operatore GROUP. Per la leggibilità, i programmatori di solito usano GROUP quando è coinvolta una sola relazione e COGROUP quando sono coinvolte più relazioni.

In questo esempio, raggruppa i campi 'caricamento1' e 'caricamento2' in base all'URL in entrambe le relazioni.

come cercare un personaggio in java

Risultato COGROUP:

ATTRAVERSARE:

L'operatore CROSS viene utilizzato per calcolare il prodotto incrociato (prodotto cartesiano) di due o più relazioni.

Applicazione di prodotti incrociati su loading1 e loading2.

Risultato CROSS:

LIMITE:

L'operatore LIMIT viene utilizzato per limitare il numero di tuple di output. Se il numero specificato di tuple di output è uguale o superiore al numero di tuple nella relazione, l'output includerà tutte le tuple nella relazione.

Risultato LIMIT:

DIVISO:

L'operatore SPLIT viene utilizzato per suddividere il contenuto di una relazione in due o più relazioni in base a un'espressione. A seconda delle condizioni indicate nell'espressione.

Dividi il caricamento2 in due relazioni x e y. La relazione x creata da loading2 contiene i campi in cui la valutazione è maggiore di 8 e la relazione y contiene i campi in cui la valutazione è minore o uguale a 8.

Hai domande per noi? Per favore menzionali nella sezione commenti e ti risponderemo.

Post correlati:

Operatori in Apache Pig - Operatori diagnostici

Passaggi per creare UDF in Apache Pig