Úvod do Joins in Hive

Spojení se používá k načtení různých výstupů pomocí více tabulek jejich kombinací na základě konkrétních sloupců. Nyní, aby tabulky byly v Úlu, musíme vytvořit tabulky a načíst data v každé tabulce. Pro pochopení účelu zde použijeme dvě tabulky (zákazník a produkt).

Různé příkazy

Níže jsou uvedeny příkazy pro vytváření a načítání dat v těchto tabulkách:

Pro tabulku zákazníků : 6 řádků

Vytvořit příkaz

Vytvořit externí tabulku, pokud neexistuje zákazník (řetězec id, řetězec názvu, řetězec města)
řádkový formát je ohraničen
pole ukončena znakem „“
umístění '/user/hive/warehouse/test.db/customer'
tblproperties (“skip.header.line.count” = ”1”);

Načíst příkaz

Načíst data lokálně v cestě '/home/cloudera/Customer_Neha.txt' do tabulky zákazníka;

Data tabulky zákazníků

Pro tabulku produktu : 6 řádků

Vytvořit příkaz

Vytvořte externí tabulku, pokud neexistuje produkt (řetězec Cust_Id,
Řetězec produktu, Řetězec ceny)
řádkový formát je ohraničen
pole ukončena znakem „“
umístění '/user/hive/warehouse/test.db/product'
tblproperties (“skip.header.line.count” = ”1”);

Načíst příkaz

Načíst místní cestu dat '/home/cloudera/Product_Neha.txt' do tabulkového produktu;

Data tabulky produktů

Poznámka : Používám „vlastnosti (“ skip.header.line.count ”=” 1 ”)” k přeskočení prvního řádku mých dat, který je pro mě záhlaví.

Chcete-li zkontrolovat schéma tabulky, použijte příkaz „desc table name;“


Nyní máme data v tabulkách, pojďme si s nimi hrát ????

Typy spojení v Úlu

Připojte se - Tím získáte křížový produkt obou dat tabulky jako výstup. Jak vidíte, v každé tabulce je 6 řádků. Výstup pro spojení bude tedy 36 řádků. Počet mapovačů-1. Neexistuje však žádné snížení na obsluhu.

Příkaz

Výstup:

1. Úplné připojení

Úplné spojení bez podmínky zápasu poskytne křížový produkt obou tabulek.

Počet mapovačů-2

Počet reduktorů-1

Toho lze dosáhnout také pomocí „Připojit se“, ale s menším počtem mapovačů a reduktorů.

Plné spojení s podmínkou zápasu

Všechny řádky budou spojeny z obou tabulek. Pokud se řádky neshodují v jiné tabulce, na výstupu bude naplněna hodnota NULL (Pozorujte ID-100, 106). Žádné řádky nejsou přeskočeny.

Počet mapovačů-2

Počet reduktorů-1

Příkaz

Výstup:

2. Vnitřní spojení

Pokud je vnitřní spojení použito bez klauzule „on“, dá jako výstup křížový produkt. Nicméně jsme povinni použít konkrétní sloupce, na jejichž základě lze spojení provést. Sloupec Id z tabulky zákazníků a sloupec Cust_id z tabulky produktů jsou mé specifické sloupce. Výstup obsahuje řádky, kde se shodují Id a Cust_Id. Můžete pozorovat, řádky s Id-106 a Cust_Id-100 jsou přeskočeny ve výstupu, protože nejsou přítomny v jiné tabulce.

Příkaz

Výstup:

3. Levé připojení

Všechny řádky z levé tabulky jsou spojeny s odpovídajícími řádky z pravé tabulky. Pokud má pravá tabulka řádky s idy, které nejsou v levé tabulce, pak budou tyto řádky přeskočeny (ve výstupu je třeba dodržet Cust_Id-100). Pokud správná tabulka nemá řádky s idy, které jsou v levé tabulce, bude ve výstupu naplněna hodnota NULL (ve výstupu bude dodržovat Id-106).

Počet mapovačů-1

Počet reduktorů-0

Příkaz

Výstup:

4. Správné připojení

Všechny řádky z pravé tabulky jsou sladěny s levými řádky tabulky. Pokud levá tabulka nemá žádný řádek, bude naplněna hodnota NULL (Pozorujte ID 100). Řádky z levé tabulky budou přeskočeny, pokud tato shoda není nalezena v pravé tabulce (Pozorujte 106).

Počet mapovačů-1

Počet reduktorů-0

Příkaz

Výstup:

Závěr - Připojí se v Úlu

„Připojit se“, jak napovídá slovo, může spojit dvě nebo více tabulek v databázi. Je to podobné spojení v SQL. Spojení se používá k načtení různých výstupů pomocí více tabulek jejich kombinací na základě konkrétních sloupců. Na základě požadavku lze rozhodnout, které spojení bude pro vás fungovat. Například, pokud chcete zkontrolovat, jaké id je v levé tabulce, ale ne v pravé tabulce, můžete jednoduše použít levé spojení. V závislosti na složitosti mohou být v úlech spojeny různé optimalizace. Některé z příkladů jsou rozdělení rozdělení, spojení replikace a semifinále.

Doporučené články

Toto je průvodce po Joins in Hive. Zde diskutujeme typy spojení jako plné spojení, vnitřní spojení, levé spojení a pravé spojení v úlu spolu s jeho příkazem a výstupem. Další informace naleznete také v následujících článcích

  1. Co je Úl?
  2. Příkazy úlu
  3. Výcvik úlu (2 kurzy, 5+ projektů)
  4. Apache Pig vs Apache Hive - Top 12 užitečných rozdílů
  5. Vlastnosti alternativy úlu
  6. Použití funkce OBJEDNÁVKA BY v Úlu
  7. Top 6 typů spojení v MySQL s příklady

Kategorie: