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