Operatorzy w Apache Pig: Część 1 - Operatory relacyjne



Ten post zawiera opis operatorów w Apache Pig. Spójrz na ten post dotyczący operatorów w Apache Pig: Część 1 - Operatory relacyjne.

Ten post dotyczy operatorów w Apache Pig.Apache Pig umożliwia także pisanie złożonych transformacji danych bez znajomości języka Java, co sprawia, że ​​jest to naprawdę ważne dla .Rzućmy okiem na to, czym jest Pig and Pig Latin i na różne tryby, w których można je obsługiwać, zanim przejdziemy do Operatorów.

Co to jest Apache Pig?

Apache Pig to język proceduralny wysokiego poziomu służący do wykonywania zapytań dotyczących dużych zestawów danych przy użyciu Hadoop i platformy Map Reduce. Jest to pakiet Java, w którym skrypty mogą być wykonywane z dowolnej implementacji językowej działającej na JVM. Jest to szeroko stosowane w procesach iteracyjnych.





Apache Pig upraszcza korzystanie z Hadoop, umożliwiając zapytania podobne do SQL do rozproszonego zestawu danych i umożliwia tworzenie złożonych zadań w celu szybkiego i efektywnego przetwarzania dużych ilości danych. Najlepszą cechą Pig jest to, że wspiera wiele funkcji relacyjnych, takich jak Dołącz, Grupuj i Agreguj.

Wiem, że Pig brzmi bardziej jak narzędzie ETL i ma wiele funkcji wspólnych z narzędziami ETL. Ale przewagą Pig nad narzędziami ETL jest to, że może działać na wielu serwerach jednocześnie.



Co to jest Apache Pig Latin?

Apache Pig tworzy prostszą abstrakcję języka proceduralnego w stosunku do Map Reduce, aby udostępnić interfejs podobny do języka SQL (Structured Query Language) dla aplikacji Hadoop o nazwie Apache Pig Latin, więc zamiast pisać osobną aplikację Map Reduce, możesz napisać pojedynczy skrypt w Apache Pig Latin, która jest automatycznie równoległa i dystrybuowana w klastrze. W prostych słowach, Pig Latin to sekwencja prostych instrukcji, które pobierają dane wejściowe i generują wynik. Dane wejściowe i wyjściowe składają się z worków, map, krotek i wartości skalarnych.

Tryby wykonywania Apache Pig:

Apache Pig ma dwa tryby wykonywania:

  • Tryb lokalny

W „trybie lokalnym” dane źródłowe byłyby pobierane z katalogu lokalnego w systemie komputerowym. Tryb MapReduce można określić za pomocą polecenia „pig –x local”.



Operatorzy w Apache Pig - 1

płytka kopia i głęboka kopia w java
  • Tryb MapReduce:

Aby uruchomić Pig w trybie MapReduce, potrzebujesz dostępu do klastra Hadoop i instalacji HDFS. Tryb MapReduce można określić za pomocą polecenia „pig”.

Operatorzy Apache Pig:

Apache Pig Operators to język proceduralny wysokiego poziomu służący do wykonywania zapytań dotyczących dużych zestawów danych przy użyciu Hadoop i platformy Map Reduce. Instrukcja Pig Latin jest operatorem, który przyjmuje relację jako dane wejściowe i generuje inną relację jako dane wyjściowe. Te operatory są głównymi narzędziami, które Pig Latin udostępnia do operowania na danych. Umożliwiają one przekształcanie go przez sortowanie, grupowanie, łączenie, projekcje i filtrowanie.

Utwórzmy dwa pliki do uruchamiania poleceń:

Mamy dwa pliki o nazwach „pierwszy” i „drugi”. Pierwszy plik zawiera trzy pola: użytkownik, adres URL i identyfikator.

Drugi plik zawiera dwa pola: url i rating. Te dwa pliki to pliki CSV.

Operatorów Apache Pig można podzielić na: Relacyjne i diagnostyczne.

Operatorzy relacyjni:

Operatory relacyjne to główne narzędzia, które Pig Latin dostarcza do operowania na danych. Umożliwia przekształcanie danych poprzez sortowanie, grupowanie, łączenie, rzutowanie i filtrowanie. Ta sekcja obejmuje podstawowe operatory relacyjne.

ZAŁADUJ:

Operator LOAD służy do ładowania danych z systemu plików lub pamięci HDFS do relacji Pig.

W tym przykładzie operator Load ładuje dane z pliku „first”, tworząc relację „loading1”. Nazwy pól to user, url, id.

DLA KAŻDEGO:

Ten operator generuje transformacje danych na podstawie kolumn danych. Służy do dodawania lub usuwania pól z relacji. Użyj operacji FOREACH-GENERATE do pracy z kolumnami danych.

FOREACH Wynik:

FILTR:

Ten operator wybiera krotki z relacji na podstawie warunku.

W tym przykładzie filtrujemy rekord od „loading1”, gdy warunek „id” jest większy niż 8.

Wynik FILTRA:

PRZYSTĄP:

Operator JOIN służy do wykonywania wewnętrznego sprzężenia equijoin dwóch lub więcej relacji opartych na wspólnych wartościach pól. Operator JOIN zawsze wykonuje sprzężenie wewnętrzne. Złączenia wewnętrzne ignorują klucze o wartości null, więc warto je odfiltrować przed złączeniem.

W tym przykładzie połączyć dwie relacje w oparciu o kolumnę „url” z „ładowanie1” i „ładowanie2”.

DOŁĄCZ Wynik:

ZAMÓW PRZEZ:

Sortuj według służy do sortowania relacji w oparciu o jedno lub więcej pól. Możesz sortować w kolejności rosnącej lub malejącej za pomocą słów kluczowych ASC i DESC.

W poniższym przykładzie sortujemy dane w ładowaniu2 w kolejności rosnącej w polu ocen.

KOLEJNOŚĆ WEDŁUG WYNIKU :

ODRĘBNY:

Distinct usuwa zduplikowane krotki w relacji. Weźmy plik wejściowy jak poniżej, który ma amr, bzdury, 8 i amr, mój blog, 10 dwa razy w pliku. Gdy zastosujemy odrębne dane w tym pliku, zduplikowane wpisy są usuwane.

WYRÓŻNIONY wynik:

SKLEP:

Magazyn służy do zapisywania wyników w systemie plików.

jak uruchomić Atom Python

Tutaj oszczędzamy ładowanie3 dane do pliku o nazwie przechowywanie na HDFS.

SKLEP Wynik:

GRUPA:

Operator GROUP grupuje krotki z tym samym kluczem grupy (pole klucza). Pole klucza będzie krotką, jeśli klucz grupy ma więcej niż jedno pole, w przeciwnym razie będzie tego samego typu, co klucz grupy. Wynikiem operacji GROUP jest relacja zawierająca jedną krotkę na grupę.

W tym przykładzie grupa gr

Relacja „ładowanie1” według adresu URL kolumny.

Wynik GRUPY:

COGROUP:

COGROUP to to samo, co operator GROUP. Aby zapewnić czytelność, programiści zwykle używają GROUP, gdy zaangażowana jest tylko jedna relacja, i COGROUP, gdy zaangażowanych jest wiele relacji.

W tym przykładzie pogrupuj pola „loading1” i „loading2” według adresu URL w obu relacjach.

Wynik COGROUP:

KRZYŻ:

Operator CROSS służy do obliczania iloczynu krzyżowego (iloczynu kartezjańskiego) dwóch lub więcej relacji.

Stosowanie iloczynu krzyżowego podczas ładowania1 i ładowania2.

Wynik KRZYŻOWY:

LIMIT:

Operator LIMIT służy do ograniczenia liczby krotek wyjściowych. Jeśli określona liczba krotek wyjściowych jest równa lub przekracza liczbę krotek w relacji, dane wyjściowe będą zawierać wszystkie krotki w relacji.

Wynik LIMITU:

ROZDZIELAĆ:

Operator SPLIT służy do dzielenia zawartości relacji na dwie lub więcej relacji na podstawie jakiegoś wyrażenia. W zależności od warunków podanych w wyrażeniu.

Podziel obciążenie2 na dwie relacje x i y. Relacja x utworzona przez ładowanie2 zawiera pola, których ocena jest większa niż 8, a relacja y zawiera pola, których ocena jest mniejsza lub równa 8.

Masz do nas pytanie? Wspomnij o nich w sekcji komentarzy, a my skontaktujemy się z Tobą.

Powiązane posty:

Operatorzy w Apache Pig - Operatorzy diagnostyczni

Kroki tworzenia UDF w Apache Pig