In diesem Beitrag geht es um die Operatoren in Apache Pig.Mit Apache Pig können Sie auch komplexe Datentransformationen ohne Java-Kenntnisse schreiben, was es für das Unternehmen wirklich wichtig macht .Werfen wir einen kurzen Blick auf Pig und Pig Latin und die verschiedenen Modi, in denen sie betrieben werden können, bevor wir zu Operators übergehen.
Was ist .format in Python
Was ist Apache Pig?
Apache Pig ist eine allgemeine Verfahrenssprache zum Abfragen großer Datenmengen mit Hadoop und der Map Reduce Platform. Es ist ein Java-Paket, in dem die Skripte von jeder Sprachimplementierung ausgeführt werden können, die auf der JVM ausgeführt wird. Dies wird häufig in iterativen Prozessen verwendet.
Apache Pig vereinfacht die Verwendung von Hadoop, indem SQL-ähnliche Abfragen für ein verteiltes Dataset zugelassen werden und komplexe Aufgaben erstellt werden können, um große Datenmengen schnell und effektiv zu verarbeiten. Das Beste an Pig ist, dass es viele relationale Funktionen wie Join, Group und Aggregate unterstützt.
Ich weiß, dass Pig viel mehr nach einem ETL-Tool klingt und viele Funktionen hat, die mit ETL-Tools gemeinsam sind. Der Vorteil von Pig gegenüber ETL-Tools besteht jedoch darin, dass es auf vielen Servern gleichzeitig ausgeführt werden kann.
Was ist Apache Pig Latin?
Apache Pig erstellt eine einfachere prozedurale Sprachabstraktion über Map Reduce, um eine SQL-ähnliche Schnittstelle (Structured Query Language) für Hadoop-Anwendungen namens Apache Pig Latin bereitzustellen. Anstatt also eine separate Map Reduce-Anwendung zu schreiben, können Sie ein einzelnes Skript in Apache schreiben Pig Latin, das automatisch parallelisiert und über einen Cluster verteilt wird. In einfachen Worten ist Pig Latin eine Folge einfacher Anweisungen, die eine Eingabe nehmen und eine Ausgabe erzeugen. Die Eingabe- und Ausgabedaten bestehen aus Taschen, Karten, Tupeln und Skalaren.
Ausführungsmodi für Apache Pig:
Apache Pig hat zwei Ausführungsmodi:
Lokalbetrieb
Im 'lokalen Modus' werden die Quelldaten aus dem lokalen Verzeichnis Ihres Computersystems ausgewählt. Der MapReduce-Modus kann mit dem Befehl 'pig –x local' angegeben werden.
MapReduce-Modus:
Um Pig im MapReduce-Modus ausführen zu können, benötigen Sie Zugriff auf die Hadoop-Cluster- und HDFS-Installation. Der MapReduce-Modus kann mit dem Befehl 'pig' festgelegt werden.
Apache Pig Operatoren:
Die Apache Pig Operators sind eine allgemeine Verfahrenssprache zum Abfragen großer Datenmengen mit Hadoop und der Map Reduce Platform. Eine Pig Latin-Anweisung ist ein Operator, der eine Beziehung als Eingabe verwendet und eine andere Beziehung als Ausgabe erzeugt. Diese Operatoren sind die Hauptwerkzeuge, die Pig Latin für die Bearbeitung der Daten bereitstellt. Mit ihnen können Sie es transformieren, indem Sie es sortieren, gruppieren, verbinden, projizieren und filtern.
Erstellen wir zwei Dateien, um die Befehle auszuführen:
Wir haben zwei Dateien mit den Namen 'first' und 'second'. Die erste Datei enthält drei Felder: user, url & id.
Die zweite Datei enthält zwei Felder: URL & Bewertung. Diese beiden Dateien sind CSV-Dateien.
Die Apache Pig-Operatoren können wie folgt klassifiziert werden: Relational und diagnostisch.
Vergleichsoperatoren:
Vergleichsoperatoren sind die Hauptwerkzeuge, die Pig Latin zur Verfügung stellt, um die Daten zu verarbeiten. Sie können die Daten durch Sortieren, Gruppieren, Verbinden, Projizieren und Filtern transformieren. Dieser Abschnitt behandelt die grundlegenden Vergleichsoperatoren.
BELASTUNG:
Der Operator LOAD wird verwendet, um Daten aus dem Dateisystem oder dem HDFS-Speicher in eine Pig-Beziehung zu laden.
In diesem Beispiel Der Ladeoperator lädt Daten aus der Datei 'first', um die Beziehung 'load1' zu bilden. Die Feldnamen sind Benutzer, URL, ID.
FÜR JEDE:
Dieser Operator generiert Datentransformationen basierend auf Datenspalten. Es wird verwendet, um Felder zu einer Beziehung hinzuzufügen oder daraus zu entfernen. Verwenden Sie die Operation FOREACH-GENERATE, um mit Datenspalten zu arbeiten.
FOREACH Ergebnis:
FILTER:
Dieser Operator wählt Tupel aus einer Beziehung basierend auf einer Bedingung aus.
In diesem Beispiel Wir filtern den Datensatz nach 'Laden1', wenn die Bedingung 'ID' größer als 8 ist.
FILTER Ergebnis:
BEITRETEN:
Der Operator JOIN wird verwendet, um eine innere, gleichwertige Verknüpfung von zwei oder mehr Beziehungen basierend auf gemeinsamen Feldwerten durchzuführen. Der JOIN-Operator führt immer eine innere Verknüpfung durch. Innere Verknüpfungen ignorieren Nullschlüssel, daher ist es sinnvoll, sie vor der Verknüpfung herauszufiltern.
In diesem Beispiel Verbinden Sie die beiden Beziehungen basierend auf der Spalte 'URL' von 'Laden1' und 'Laden2'.
JOIN Ergebnis:
SORTIEREN NACH:
Mit 'Sortieren nach' wird eine Beziehung nach einem oder mehreren Feldern sortiert. Sie können mit ASC- und DESC-Schlüsselwörtern in aufsteigender oder absteigender Reihenfolge sortieren.
Im folgenden Beispiel sortieren wir die Daten in load2 in aufsteigender Reihenfolge im Bewertungsfeld.
BESTELLEN NACH Ergebnis ::
UNTERSCHEIDLICH:
Distinct entfernt doppelte Tupel in einer Beziehung. Nehmen wir eine Eingabedatei wie unten, die hat amr, Mist, 8 und amr, myblog, 10 zweimal in der Datei. Wenn wir die Daten in dieser Datei eindeutig anwenden, werden doppelte Einträge entfernt.
UNTERSCHIEDLICHES Ergebnis:
GESCHÄFT:
Speichern wird verwendet, um Ergebnisse im Dateisystem zu speichern.
Hier sparen wir Laden3 Daten in eine Datei mit dem Namen Speicherung auf HDFS.
STORE Ergebnis:
GRUPPE:
Der GROUP-Operator gruppiert die Tupel mit demselben Gruppenschlüssel (Schlüsselfeld). Das Schlüsselfeld ist ein Tupel, wenn der Gruppenschlüssel mehr als ein Feld enthält, andernfalls ist es vom gleichen Typ wie das des Gruppenschlüssels. Das Ergebnis einer GROUP-Operation ist eine Beziehung, die ein Tupel pro Gruppe enthält.
In diesem Beispiel Gruppe th
Die Beziehung 'Laden1' nach Spalten-URL.
GRUPPENergebnis:
COGROUP:
COGROUP ist dasselbe wie der GROUP-Operator. Aus Gründen der Lesbarkeit verwenden Programmierer normalerweise GROUP, wenn nur eine Beziehung beteiligt ist, und COGROUP, wenn mehrere Beziehungen beteiligt sind.
In diesem Beispiel gruppieren Sie die Felder 'Laden1' und 'Laden2' nach URL in beiden Beziehungen.
COGROUP Ergebnis:
KREUZ:
Der CROSS-Operator wird verwendet, um das Kreuzprodukt (kartesisches Produkt) von zwei oder mehr Beziehungen zu berechnen.
Cross Product beim Laden1 und Laden2 anwenden.
CROSS Ergebnis:
GRENZE:
Der Operator LIMIT wird verwendet, um die Anzahl der Ausgabetupel zu begrenzen. Wenn die angegebene Anzahl von Ausgabetupeln gleich oder größer als die Anzahl von Tupeln in der Beziehung ist, enthält die Ausgabe alle Tupel in der Beziehung.
LIMIT Ergebnis:
TEILT:
Der SPLIT-Operator wird verwendet, um den Inhalt einer Beziehung basierend auf einem Ausdruck in zwei oder mehr Beziehungen zu unterteilen. Abhängig von den im Ausdruck angegebenen Bedingungen.
Teilen Sie das Laden2 in zwei Relationen x und y auf. Die durch Laden2 erstellte x-Beziehung enthält die Felder, deren Bewertung größer als 8 ist, und die y-Beziehung enthält Felder, deren Bewertung kleiner oder gleich 8 ist.
Hast du eine Frage an uns? Bitte erwähnen Sie sie in den Kommentaren und wir werden uns bei Ihnen melden.
Zusammenhängende Posts:
Operatoren in Apache Pig - Diagnoseoperatoren
Schritte zum Erstellen von UDF in Apache Pig