Wprowadzenie do połączeń w gałęzi

Połączenia służą do wyszukiwania różnych wyników przy użyciu wielu tabel, łącząc je w oparciu o określone kolumny. Teraz, aby tabele były w gałęzi, musimy utworzyć tabele i załadować dane do każdej tabeli. Użyjemy tutaj dwóch tabel (klienta i produktu), aby zrozumieć cel.

Różne polecenia

Poniżej znajdują się polecenia tworzenia i ładowania danych w tych tabelach:

Do tabeli klientów : 6 rzędów

Utwórz polecenie

Utwórz tabelę zewnętrzną, jeśli nie istnieje klient (ciąg identyfikatora, ciąg nazwy, ciąg miasta)
Format wiersza rozdzielany
pola zakończone przez „”
lokalizacja „/user/hive/warehouse/test.db/customer”
tblproperties („skip.header.line.count” = ”1”);

Załaduj polecenie

Załaduj dane lokalne w ścieżce „/home/cloudera/Customer_Neha.txt” do klienta tabeli;

Dane tabeli klientów

Dla tabeli produktów : 6 rzędów

Utwórz polecenie

Utwórz tabelę zewnętrzną, jeśli nie istnieje produkt (ciąg Cust_Id,
Ciąg produktu, Ciąg ceny)
Format wiersza rozdzielany
pola zakończone przez „”
lokalizacja „/user/hive/warehouse/test.db/product”
tblproperties („skip.header.line.count” = ”1”);

Załaduj polecenie

Załaduj ścieżkę lokalną danych „/home/cloudera/Product_Neha.txt” do produktu tabeli;

Dane tabeli produktów

Uwaga : używam „właściwości („ skip.header.line.count ”=” 1 ”)”, aby pominąć pierwszy wiersz moich danych, który jest do mnie nagłówkiem.

Aby sprawdzić schemat tabeli, użyj polecenia „desc table name;”


Teraz mamy dane w tabelach, Zagrajmy z tym ????

Rodzaje złączeń w gałęzi

Dołącz - da to iloczyn krzyżowy danych tabeli jako danych wyjściowych. Jak widać, mamy 6 wierszy w każdej tabeli. Tak więc wynik dla Join będzie wynosił 36 wierszy. Liczba twórców map-1. Jednak operator nie stosuje redukcji.

Komenda

Wynik:

1. Pełne dołączenie

Pełne połączenie bez warunku dopasowania da iloczyn krzyżowy obu tabel.

Liczba twórców map-2

Liczba reduktorów-1

Można to osiągnąć również za pomocą opcji „Dołącz”, ale przy mniejszej liczbie maperów i reduktorów.

Pełne połączenie z warunkiem dopasowania

Wszystkie rzędy zostaną połączone z obu tabel. Jeśli wiersze nie są dopasowane w innej tabeli, w danych wyjściowych zostanie zapełniona wartość NULL (obserwuj Id-100, 106). Żadne wiersze nie są pomijane.

Liczba twórców map-2

Liczba reduktorów-1

Komenda

Wynik:

2. Przyłączenie wewnętrzne

Jeśli sprzężenie wewnętrzne jest używane bez klauzuli „on”, otrzyma iloczyn krzyżowy jako wynik. Jesteśmy jednak zobowiązani do korzystania z określonych kolumn, na podstawie których można wykonać łączenie. Kolumna Id z tabeli klientów i kolumna Cust_id z tabeli produktów to moje określone kolumny. Dane wyjściowe zawierają wiersze, w których pasują Id i Cust_Id. Możesz zaobserwować, że wiersze o Id-106 i Cust_Id-100 są pomijane w danych wyjściowych, ponieważ nie są obecne w innej tabeli.

Komenda

Wynik:

3. Left Join

Wszystkie wiersze z lewej tabeli są połączone z dopasowanymi wierszami z prawej tabeli. Jeśli prawa tabela ma wiersze o identyfikatorach, których nie ma w lewej tabeli, wówczas wiersze te zostaną pominięte (obserwuj Cust_Id-100 w danych wyjściowych). Jeśli prawa tabela nie ma wierszy z identyfikatorami, które znajdują się w lewej tabeli, wartość NULL zostanie wypełniona w danych wyjściowych (obserwuj Id-106 w danych wyjściowych).

Liczba Mapper-1

Liczba reduktorów-0

Komenda

Wynik:

4. Right Join

Wszystkie wiersze z prawej tabeli są dopasowane do lewej tabeli. Jeśli lewa tabela nie ma żadnego wiersza, wówczas NULL zostanie wypełnione (Observ Id 100). Rzędy z lewej tabeli zostaną pominięte, jeśli w prawej tabeli nie zostanie znalezione dopasowanie (Observe Id 106).

Liczba Mapper-1

Liczba reduktorów-0

Komenda

Wynik:

Wniosek - dołącza do ula

„Dołącz”, jak sugeruje to słowo, może łączyć dwie lub więcej tabel w bazie danych. Jest podobny do złączeń w SQL. Połączenia służą do wyszukiwania różnych wyników przy użyciu wielu tabel, łącząc je w oparciu o określone kolumny. Na podstawie wymagań można zdecydować, które dołączenie będzie dla Ciebie działać. Na przykład, jeśli chcesz sprawdzić, jakie identyfikatory są obecne w lewej tabeli, ale nie w prawej tabeli, możesz po prostu użyć lewego łączenia. W zależności od złożoności można wykonywać różne optymalizacje w połączeniach gałęzi. Niektóre z przykładów to sprzężenia repartition, sprzężenia replikacji i sprzężenia semi.

Polecane artykuły

To jest przewodnik po dołączeniu do ula. Tutaj omawiamy rodzaje złączeń, takie jak pełne złączenie, wewnętrzne połączenie, lewe połączenie i prawe połączenie w gałęzi wraz z jego poleceniem i wyjściem. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-

  1. Co to jest ul?
  2. Polecenia gałęzi
  3. Szkolenie w ulu (2 kursy, ponad 5 projektów)
  4. Apache Pig vs Hoje Apache - Top 12 przydatnych różnic
  5. Funkcje alternatywnych gałęzi
  6. Używanie funkcji ORDER BY w gałęzi
  7. Top 6 rodzajów połączeń w MySQL z przykładami

Kategoria: