Introduktion till Joins in Hive
Joins används för att hämta olika utgångar med flera tabeller genom att kombinera dem baserat på särskilda kolumner. För att tabellerna ska vara i Hive måste vi skapa tabellerna och ladda data i varje tabell. Vi kommer att använda två tabeller (kund och produkt) här för att förstå syftet.
Olika kommandon
Nedan följer kommandona för att skapa och ladda data i dessa tabeller:
För kundtabell : 6 rader
Skapa kommando
Skapa extern tabell om det inte finns kund (ID-sträng, namnsträng, stadsträng)
radformat avgränsat
fält avslutas med ''
plats '/user/hive/warehouse/test.db/customer'
tblproperties ("skip.header.line.count" = "1");
Ladda kommando
Ladda data lokalt i sökvägen '/home/cloudera/Customer_Neha.txt' till tabellkund;
Kundtabeldata
För produktbord : 6 rader
Skapa kommando
Skapa extern tabell om det inte finns en produkt (Cust_Id-sträng,
Produktsträng, Prissträng)
radformat avgränsat
fält avslutas med ''
plats '/user/hive/warehouse/test.db/product'
tblproperties ("skip.header.line.count" = "1");
Ladda kommando
Ladda data lokal sökväg '/home/cloudera/Product_Neha.txt' i tabellprodukt;
Produkt Tabell Data
För att kontrollera tabellschema använder du kommandot "desc tabellnamn;"
Nu har vi data i tabeller, låt oss leka med det ????
Typer av sammanfogningar i bikupa
Gå med - Detta ger korsprodukten av både tabellens data som utgång. Som ni ser har vi 6 rader i varje tabell. Så utgången för Join blir 36 rader. Antalet kartläggare-1. Emellertid används ingen reducering för operatören.
Kommando
Produktion:
1. Full gå med
Fullkoppling utan matchningsvillkor ger korsprodukten från båda tabellerna.
Antal kartläggare-2
Antal reducer-1
Detta kan också uppnås med hjälp av "Join" men med mindre antal mapper och reducerare.
Full Gå med matchvillkor
Alla raderna kommer att sammanfogas från båda tabellerna. Om rader inte matchas i en annan tabell fylls NULL i utgång (Observera Id-100, 106). Inga rader hoppas över.
Antal kartläggare-2
Antal reducer-1
Kommando
Produktion:
2. Inre gå
Om den inre kopplingen används utan ”på” -klausulen, kommer den att ge korsprodukten som utgång. Vi måste emellertid använda de specifika kolumnerna på vilken basis kopplingen kan utföras. Id-kolumnen från kundtabellen och Cust_id-kolumnen från produkttabellen är mina specifika kolumner. Utgången innehåller raderna där Id och Cust_Id matchar. Du kan observera att rader med Id-106 och Cust_Id-100 hoppas över i utgång eftersom de inte finns i en annan tabell.
Kommando
Produktion:
3. Vänster gå med
Alla raderna från det vänstra bordet förenas med matchade rader från det högra bordet. Om den högra tabellen har rader med id som inte finns i den vänstra tabellen hoppas de raderna över (Observera Cust_Id-100 i utgången). Om den högra tabellen inte har rader med id som finns där i den vänstra tabellen, kommer NULL att fyllas i utgång (Observera Id-106 i utgången).
Antal Mapper-1
Antal reducer-0
Kommando
Produktion:
4. Right Delta
Alla raderna från det högra bordet matchas med vänster tabellrader. Om den vänstra tabellen inte har någon rad kommer NULL att fyllas i (Observera Id 100). Rader från vänsterbordet hoppas över om den matchningen inte finns i den högra tabellen (Observera Id 106).
Antal Mapper-1
Antal reducer-0
Kommando
Produktion:
Slutsats - Joins in Hive
"Gå med" som ordet antyder kan gå med i två eller flera tabeller i databasen. Det liknar anslutningar i SQL. Joins används för att hämta olika utgångar med flera tabeller genom att kombinera dem baserat på särskilda kolumner. Baserat på kravet kan det bestämmas vilken anslutning som fungerar för dig. Om du till exempel vill kontrollera vad som är id: n i den vänstra tabellen, men inte i den högra tabellen, kan du helt enkelt använda vänster koppling. Olika optimeringar kan utföras i bikupfogar beroende på komplexiteten. Några av exemplen är repartition-sammanfogningar, replikeringskopplingar och halvförband.
Rekommenderade artiklar
Detta är en guide till Joins in Hive. Här diskuterar vi vilka typer av sammanfogningar som fullständig sammanfogning, inre sammanfogning, vänsterfog och högerfogning i hive tillsammans med dess kommando och utdata. Du kan också titta på följande artiklar för att lära dig mer-
- Vad är en bikupa?
- Hive-kommandon
- Hive Training (2 kurser, 5+ projekt)
- Apache Pig vs Apache Hive - Topp 12 användbara skillnader
- Funktioner i Hive Alternatives
- Använda ORDER BY-funktion i Hive
- Topp 6 typer av sammanfogningar i MySQL med exempel