Hadoop Schweinedatentypen und Syntax

Schweinedatentypen bilden das Datenmodell für wie Schwein denkt an die Struktur der Daten, die sie verarbeitet. Mit Schwein, wird das Datenmodell definiert, wenn die Daten geladen werden. Alle Daten, die Sie Schwein laden in von der Festplatte wird einen bestimmten Schema und Struktur zu haben. Schwein muss diese Struktur zu verstehen, so dass, wenn Sie das Laden zu tun, werden die Daten geht automatisch durch ein Mapping.

Zum Glück für Sie, ist das Schwein Datenmodell reich genug, um die meisten etwas geworfen seinen Weg zu handhaben, einschließlich Tabellen- wie Strukturen und verschachtelte hierarchische Datenstrukturen. Im Allgemeinen jedoch kann Pig Datentypen in zwei Kategorien unterteilt werden: skalare Typen und komplexe Typen. Scalar Typen enthalten einen einzigen Wert, während Komplex Typen enthalten andere Arten, wie zum Beispiel die Tuple, Tasche und Kartentypen unten aufgeführt.

Pig Latin hat diese vier Typen in seinem Datenmodell:

  • Atom: Ein Atom ist jeder einzelne Wert ist, wie beispielsweise eine Zeichenkette oder eine Zahl - 'Diego', zum Beispiel. Pig Atom Werte sind Skalar-Typen, die in den meisten Programmiersprachen erscheinen - int, long, float, double, chararray und bytearray, zum Beispiel.

  • tuple: EIN Tupel ist eine Platte, die aus einer Folge von Feldern besteht. Jedes Feld kann von jeder Art sein - 'Diego', 'Gomez' oder 6, zum Beispiel). Denken Sie an ein Tupel als eine Zeile in einer Tabelle.

  • Tasche: EIN Tasche ist eine Sammlung von nicht eindeutigen Tupel. Das Schema des Beutels ist flexibel - jedes Tupel in der Sammlung, eine beliebige Anzahl von Feldern enthalten kann, und jedes Feld von jeder Art sein kann.

  • Karte: Eine Karte ist eine Sammlung von Schlüsselwert-Paaren. Jede Art kann in dem Wert gespeichert werden, und der Schlüssel muss eindeutig sein. Der Schlüssel einer Karte muss ein chararray sein und der Wert kann von beliebiger Art sein.

Die Figur bietet einige schöne Beispiele von Tuple, Tasche und Map-Datentypen, wie gut.

bild0.jpg

Der Wert aller dieser Typen kann auch null sein. Die Semantik für null sind ähnlich denen in SQL verwendet. Das Konzept von null in Pig bedeutet, dass der Wert nicht bekannt ist. Nulls in den Daten in Fällen zeigen, in denen Werte sind nicht lesbar oder nicht erkennbar - zum Beispiel, wenn Sie einen falschen Datentyp in der LOAD-Anweisung zu verwenden waren.

Null kann als Platzhalter verwendet werden, bis Daten hinzugefügt wird, oder als ein Wert für ein Feld, das optional ist.

Pig Latin hat eine einfache Syntax mit leistungsstarken Semantik Sie primäre Operationen verwenden werden zur Durchführung von zwei: Zugang und Transformationsdaten.

In einem Hadoop Kontext, Zugriff Daten bedeutet, ermöglicht es Entwicklern, speichern zu laden und Stream-Daten, während Transformieren Daten bedeutet, die Vorteile von Schweine Fähigkeit zur Gruppe nehmen, verbinden, verbinden, geteilt, Filter und Daten zu sortieren. Die Tabelle gibt einen Überblick über die Operatoren mit jeder Operation zugeordnet ist.

Pig Latin-Operatoren
BetriebOperatorErläuterung
Data AccessLOAD / STORELesen und Schreiben von Daten auf File-System
DUMPSchreiben der Ausgabe in die Standardausgabe (stdout)
STROMSenden Sie alle Aufzeichnungen über externe binäre
TransformationsFÜR JEDEAnwenden Ausdruck zu jedem Datensatz und Ausgang ein oder morerecords
FILTERAnwenden Prädikat und entfernen Sie Datensätze, die nicht tun meetcondition
GROUP / COGROUPAggregate Datensätze mit dem gleichen Schlüssel von einem oder moreinputs
BEITRETENVerbinden Sie zwei oder mehrere Datensätze auf der Grundlage einer Bedingung
KREUZKartesische Produkt von zwei oder mehreren Eingängen
AUFTRAGDatensätze sortieren basierend auf Schlüssel
DISTINCTEntfernen Sie doppelte Datensätze
UNIONZusammenführen von zwei Datensätzen
TEILTDivide-Daten in zwei oder mehr Taschen basierend auf Prädikat
GRENZETeilmenge der Anzahl der Datensätze

Pig bietet auch einige Operatoren, die für die Fehlersuche und Fehlerbehebung nützlich sind, wie hier gezeigt:

Operatoren für Debugging und Fehlerbehebung
BetriebOperatorBeschreibung
DebuggenBESCHREIBENBringen Sie das Schema einer Beziehung.
DUMPDump den Inhalt einer zu dem Schirm.
ERKLÄRENZeigen Sie die MapReduce Ausführungspläne.

Ein Teil der Paradigmenwechsel von Hadoop ist, dass Sie Ihr Schema zu lesen, anstatt Laden anzuwenden. Nach der alten Art und Weise, Dinge zu tun - den RDBMS Weg - wenn Sie Daten in Ihrem Datenbanksystem zu laden, müssen Sie es in einem gut definierten Satz von Tabellen laden. Hadoop ermöglicht es Ihnen, alle, dass Rohdaten im Voraus zu speichern und das Schema zu lesen anzuwenden.

Mit Schwein, tun Sie dies beim Laden der Daten mit Hilfe des LOAD-Operator.

Die optionale USING-Anweisung legt fest, wie die Datenstruktur innerhalb der Datei in das Schwein Datenmodell abzubilden - in diesem Fall ist die PigStorage () Datenstruktur, Textdateien begrenzt analysiert. (Dieser Teil der USING-Anweisung wird oft bezeichnet als LOAD Func und arbeitet in ähnlicher Weise wie eine benutzerdefinierte Deserializer).

Die optionale AS-Klausel definiert ein Schema für die Daten, die abgebildet wird. Wenn Sie nicht über eine AS-Klausel verwenden, doch sagen, Sie im Grunde die Standard-LOAD Func eine einfache Textdatei zu erwarten, die Registerkarte begrenzt ist. Ohne Schema zur Verfügung gestellt, müssen die Felder nach Position referenziert werden, da kein Name definiert ist.

AS-Klauseln Verwenden bedeutet, dass Sie ein Schema an Ort und Stelle zu lesen Zeit für Ihren Text-Dateien haben, die Benutzer schnell zu beginnen ermöglicht und agile Schema-Modellierung und Flexibilität, so dass Sie mehr Daten zu Ihrem Analytics hinzufügen können.

Der LOAD Operator arbeitet nach dem Prinzip der lazy evaluation, auch bezeichnet als Call-by-Bedarf. Jetzt faul klingt nicht besonders lobenswert, aber alles, es bedeutet, dass Sie die Auswertung eines Ausdrucks verzögern, bis Sie es wirklich brauchen.

Im Rahmen des Schweins Beispiel, das bedeutet, dass nach der LOAD-Anweisung ausgeführt wird, werden keine Daten bewegt - nichts um abgeschoben wird -, bis eine Anweisung, um Daten zu schreiben, angetroffen wird. Sie können ein Schwein-Skript, das eine Seite lang mit komplexen Transformationen gefüllt ist, aber nichts ausgeführt wird, bis die DUMP oder STORE-Anweisung angetroffen wird.

Menü