Introduktion til Joins in Hive
Joins bruges til at hente forskellige output ved hjælp af flere tabeller ved at kombinere dem baseret på bestemte kolonner. Nu skal tabellerne være i Hive, vi skal oprette tabellerne og indlæse dataene i hver tabel. Vi vil bruge to tabeller (kunde og produkt) her til at forstå formålet.
Forskellige kommandoer
Nedenfor er kommandoer til oprettelse og indlæsning af dataene i disse tabeller:
Til kundetabel : 6 rækker
Opret kommando
Opret ekstern tabel, hvis ikke findes kunde (id-streng, navnestreng, bystreng)
rækkeformat afgrænset
felter afsluttet med ''
placering '/user/hive/warehouse/test.db/customer'
tblproperties (“skip.header.line.count” = ”1”);
Indlæs kommando
Indlæs data lokal i stien '/home/cloudera/Customer_Neha.txt' i tabelkunden;
Data om kundetabel
For produktbord : 6 rækker
Opret kommando
Opret ekstern tabel, hvis ikke findes et produkt (Cust_Id-streng,
Produktstreng, Prisstreng)
rækkeformat afgrænset
felter afsluttet med ''
placering '/user/hive/warehouse/test.db/product'
tblproperties (“skip.header.line.count” = ”1”);
Indlæs kommando
Indlæs datalokale sti '/home/cloudera/Product_Neha.txt' i tabelprodukt;
Produkttabel Data
Hvis du vil kontrollere tabelskema, skal du bruge kommandoen "desc-tabelnavn;"
Nu har vi data i tabeller, lad os lege med det ????
Typer af sammenføjninger i Hive
Deltag- Dette giver krydsproduktet af både tabellens data som output. Som du kan se, har vi 6 rækker i hver tabel. Så output for Join vil være 36 rækker. Antallet af kortlægere-1. Der anvendes dog ingen reduktion til operatøren.
Kommando
Produktion:
1. Fuld deltagelse
Fuld deltagelse uden matchbetingelse giver krydsproduktet fra begge borde.
Antal kortlæggere-2
Antal reduktionsredskaber-1
Dette kan også opnås ved hjælp af "Join", men med et mindre antal kortlægnings- og reduktionsmaskiner.
Fuld deltag med kamptilstand
Alle rækker samles fra begge borde. Hvis rækker ikke matches i en anden tabel, vil NULL blive udfyldt i output (Observer Id-100, 106). Ingen rækker springes over.
Antal kortlæggere-2
Antal reduktionsredskaber-1
Kommando
Produktion:
2. Indvendig sammenføjning
Hvis den indvendige sammenføjning bruges uden “on” -bestemmelsen, giver det krydsproduktet som output. Vi er dog forpligtet til at bruge de specifikke kolonner, på hvilken basis sammenkoblingen kan udføres. Id-kolonnen fra kundetabellen og Cust_id-kolonnen fra produkttabellen er mine specifikke kolonner. Outputet indeholder rækkerne, hvor Id og Cust_Id matcher. Du kan observere, rækker med Id-106 og Cust_Id-100 springes over i output, fordi de ikke er til stede i en anden tabel.
Kommando
Produktion:
3. Venstre deltag
Alle rækker fra venstre tabel samles med matchede rækker fra højre tabel. Hvis den højre tabel har rækker med id'er, der ikke er til stede i den venstre tabel, springes disse rækker over (observer Cust_Id-100 i output). Hvis den højre tabel ikke har rækker med id'er, der er der i venstre tabel, vil NULL blive udfyldt i output (Observer Id-106 i output).
Antal Mapper-1
Antal reducer-0
Kommando
Produktion:
4. Right Join
Alle rækker fra det højre bord matches med venstre tabelrækker. Hvis den venstre tabel ikke har nogen række, vil NULL blive udfyldt (Observer Id 100). Rækker fra venstre tabel springes over, hvis det match ikke findes i den højre tabel (Observer Id 106).
Antal Mapper-1
Antal reducer-0
Kommando
Produktion:
Konklusion - Joins in Hive
"Deltag", som ordet antyder, kan slutte sig til to eller flere tabeller i databasen. Det svarer til sammenføjninger i SQL. Joins bruges til at hente forskellige output ved hjælp af flere tabeller ved at kombinere dem baseret på bestemte kolonner. Baseret på kravet kan det besluttes, hvilket medlem der fungerer for dig. For eksempel, hvis du vil kontrollere, hvad der er id'et, der findes i venstre tabel, men ikke i højre tabel, kan du blot bruge left join. Forskellige optimeringer kan udføres i hiveforbindelser afhængigt af kompleksiteten. Nogle af eksemplerne er repartitionsforbindelser, replikationsforbindelser og semi-sammenføjninger.
Anbefalede artikler
Dette er en guide til Joins in Hive. Her diskuterer vi de typer sammenføjninger som fuld sammenføjning, indre sammenføjning, venstre sammenføjning og højre sammenføjning i hive sammen med dens kommando og output. Du kan også se på de følgende artikler for at lære mere-
- Hvad er en bikube?
- Hive-kommandoer
- Hivetræning (2 kurser, 5+ projekter)
- Apache Pig vs Apache Hive - Top 12 nyttige forskelle
- Funktioner ved Hive Alternativer
- Brug af ORDER BY-funktion i Hive
- Top 6 typer sammenføjninger i MySQL med eksempler