Bli med i Hive - Lær typer sammenføyninger med kommandoer og utganger

Innholdsfortegnelse:

Anonim

Introduksjon til Joins in Hive

Sammenføyninger brukes til å hente forskjellige utganger ved å bruke flere tabeller ved å kombinere dem basert på bestemte kolonner. For at tabellene skal være i Hive, må vi opprette tabellene og laste inn dataene i hver tabell. Vi skal bruke to tabeller (kunde og produkt) her for å forstå formålet.

Ulike kommandoer

Nedenfor er kommandoene for å opprette og laste inn dataene i disse tabellene:

For kundetabell : 6 rader

Opprett kommando

Opprett ekstern tabell hvis ikke eksisterende kunde (ID-streng, navnestreng, bystreng)
radformat avgrenset
felt avsluttet av ''
location '/user/hive/warehouse/test.db/customer'
tblproperties (“skip.header.line.count” = ”1”);

Last inn kommando

Last inn data som er lokale i banen '/home/cloudera/Customer_Neha.txt' i tabellkunden;

Kundetabelldata

For produktbord : 6 rader

Opprett kommando

Lag ekstern tabell hvis ikke finnes produkt (Cust_Id-streng,
Produktstreng, Prisstreng)
radformat avgrenset
felt avsluttet av ''
location '/user/hive/warehouse/test.db/product'
tblproperties (“skip.header.line.count” = ”1”);

Last kommando

Last inn data-lokalsti '/home/cloudera/Product_Neha.txt' i tabellprodukt;

Produkt tabell data

Merk : Jeg bruker "egenskaper (" skip.header.line.count "=" 1 ")" for å hoppe over den første linjen i dataene mine som er overskriften til meg.

For å sjekke tabellskjema bruker du kommandoen "desc tabellnavn;"


Nå har vi data i tabeller, la oss leke med det ????

Typer skjøter i bikube

Bli med - Dette vil gi kryssproduktet av både tabellens data som output. Som du ser har vi 6 rader i hvert bord. Så output for Join vil være 36 rader. Antall kartleggere-1. Det brukes imidlertid ingen reduksjon for operatøren.

Kommando

Produksjon:

1. Full bli med

Full Delta uten kampvilkår vil gi kryssproduktet fra begge tabellene.

Antall kartleggere-2

Antall reduksjonsenheter-1

Dette kan oppnås ved å bruke "Join" også, men med mindre antall kort og reduksjonsenheter.

Full Bli med kamptilstand

Alle radene blir samlet fra begge tabeller. Hvis rader ikke samsvares i en annen tabell, blir NULL befolket i utdata (observer Id-100, 106). Ingen rader hoppes over.

Antall kartleggere-2

Antall reduksjonsenheter-1

Kommando

Produksjon:

2. Inner Join

Hvis den indre skjøten brukes uten “på” -bestemmelsen, vil den gi kryssproduktet som utgang. Imidlertid er vi pålagt å bruke de spesifikke kolonnene på hvilken basis sammenføyningen kan utføres. Id-kolonnen fra kundetabellen og Cust_id-kolonnen fra varetabellen er de spesifikke kolonnene mine. Utgangen inneholder radene der Id og Cust_Id samsvarer. Du kan observere at rader med Id-106 og Cust_Id-100 hoppes over i utdata fordi de ikke er til stede i en annen tabell.

Kommando

Produksjon:

3. Venstre bli med

Alle radene fra venstre bord sammenføyes med matchede rader fra høyre bord. Hvis den høyre tabellen har rader med ID-er som ikke er til stede i den venstre tabellen, blir de radene hoppet over (Observer Cust_Id-100 i utdata). Hvis den høyre tabellen ikke har rader med IDer som er der i venstre tabell, vil NULL bli befolket i utdata (Observer Id-106 i utdata).

Antall Mapper-1

Antall reduksjonsenheter-0

Kommando

Produksjon:

4. Right Join

Alle radene fra høyre bord matches med venstre tabellrader. Hvis det venstre bordet ikke har noen rad, fylles NULL (Observer Id 100). Rader fra det venstre bordet blir hoppet over hvis den kampen ikke finnes i det høyre bordet (observer Id 106).

Antall Mapper-1

Antall reduksjonsenheter-0

Kommando

Produksjon:

Konklusjon - Joins in Hive

"Bli med" som ordet antyder, kan bli med i to eller flere tabeller i databasen. Det ligner på sammenføyninger i SQL. Sammenføyninger brukes til å hente forskjellige utganger ved å bruke flere tabeller ved å kombinere dem basert på bestemte kolonner. Basert på kravet kan det avgjøres hvilken medlem som vil fungere for deg. For eksempel, hvis du vil sjekke hva som er ID-en i venstre tabell, men ikke i høyre tabell, kan du ganske enkelt bruke left join. Ulike optimaliseringer kan utføres i bikubeskoblinger avhengig av kompleksitet. Noen av eksemplene er repartisjonsforbindelser, replikasjonsfoger og halvforbindelser.

Anbefalte artikler

Dette er en guide til Joins in Hive. Her diskuterer vi hvilke typer sammenføyninger som full sammenføyning, indre sammenføyning, venstre sammenføyning og høyre forbindelse i bikube sammen med dens kommando og utdata. Du kan også se på følgende artikler for å lære mer-

  1. Hva er en bikube?
  2. Hive-kommandoer
  3. Hiveopplæring (2 kurs, 5+ prosjekter)
  4. Apache Pig vs Apache Hive - Topp 12 nyttige forskjeller
  5. Funksjoner ved Hive Alternatives
  6. Bruke ORDER BY-funksjon i Hive
  7. Topp 6 typer sammenføyninger i MySQL med eksempler