Deltager i Hive - Lær typer af sammenføjninger med dens kommandoer og output

Indholdsfortegnelse:

Anonim

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

Bemærk : Jeg bruger "egenskaber (" skip.header.line.count "=" 1 ")" til at springe over den første linje i mine data, der er overskriften til mig.

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-

  1. Hvad er en bikube?
  2. Hive-kommandoer
  3. Hivetræning (2 kurser, 5+ projekter)
  4. Apache Pig vs Apache Hive - Top 12 nyttige forskelle
  5. Funktioner ved Hive Alternativer
  6. Brug af ORDER BY-funktion i Hive
  7. Top 6 typer sammenføjninger i MySQL med eksempler