Uvod v Pridružitve v panju
Spoji se uporabljajo za pridobivanje različnih izhodov z več tabelami, tako da jih kombiniramo na podlagi določenih stolpcev. Zdaj, da so tabele v Pive, moramo izdelati tabele in naložiti podatke v vsako tabelo. Tu bomo uporabili dve tabeli (stranko in izdelek) za razumevanje namena.
Različni ukazi
Spodaj so ukazi za ustvarjanje in nalaganje podatkov v teh tabelah:
Za tabelo kupcev : 6 vrstic
Ustvari ukaz
Ustvari zunanjo tabelo, če ne obstaja stranka (id niz, niz imena, niz mesta)
format vrstice je omejen
polja, ki jih konča ''
lokacija '/user/hive/warehouse/test.db/customer'
tblproperties ("skip.header.line.count" = "1");
Naloži ukaz
Naložite lokalne podatke na poti '/home/cloudera/Customer_Neha.txt' v uporabnika tabele;
Podatki tabele kupcev
Za tabelo izdelkov : 6 vrstic
Ustvari ukaz
Če ni izdelka, ustvarite zunanjo tabelo (string_država_Id,
Niz izdelka, niz cen)
format vrstice je omejen
polja, ki jih konča ''
lokacija '/user/hive/warehouse/test.db/product'
tblproperties ("skip.header.line.count" = "1");
Ukaz nalaganja
Naložite lokalno pot "/home/cloudera/Product_Neha.txt" v izdelek tabele;
Podatki tabele izdelkov
Če želite preveriti shemo tabele, uporabite ukaz "ime tabele desc;"
Zdaj imamo podatke v tabelah, igrajmo se s tem ????
Vrste pridruževanja v panju
Join - S tem bo navzkrižni izdelek obeh podatkov tabele kot izhod. Kot vidite, imamo v vsaki tabeli 6 vrstic. Torej bo rezultat za Pridružitev 36 vrstic. Število preslikav-1. Vendar pa se operaterju ne uporablja nobenega znižanja.
Ukaz
Izhod:
1. Popolna Pridružitev
Popolna povezava brez pogoja ujemanja bo rezultat obeh tabel.
Število zemljevidov-2
Število reduktorjev-1
To je mogoče doseči tudi z uporabo funkcije »Join«, vendar z manjšim številom zemljevidov in reduktorjev.
Popolna združitev s pogojem tekme
Vse vrstice bodo združene iz obeh tabel. Če se vrstice ne ujemajo v drugi tabeli, bo v izhodu napolnjen NULL (upoštevajte Id-100, 106). Nobena vrstica ni preskočena.
Število zemljevidov-2
Število reduktorjev-1
Ukaz
Izhod:
2. Notranji Pridružite se
Če se notranji spoj uporablja brez klavzule "on", bo navzkrižni izdelek kot izhod. Vendar moramo uporabiti posebne stolpce, na podlagi katerih se lahko izvede združevanje. Stolpec Id iz tabele kupcev in stolpec Cust_id iz tabele izdelkov sta moja specifična stolpca. Izhod vsebuje vrstice, kjer se ujemata Id in Cust_Id. Opazite lahko, da se vrstice z Id-106 in Cust_Id-100 preskočijo v izhodu, ker jih ni v drugi tabeli.
Ukaz
Izhod:
3. Levo Pridružite se
Vse vrstice iz leve tabele so združene z ujemajočimi se vrsticami iz desne tabele. Če ima desna tabela vrstice z id-ji, ki jih v levi tabeli ni, potem bodo te vrstice preskočene (upoštevajte v_izvedbi Cust_Id-100). Če desna tabela nima vrstic z id-ji, ki so v levi tabeli, se v izhodu vpiše NULL (upoštevajte v izhodu Id-106).
Število Mapper-1
Število reduktorjev-0
Ukaz
Izhod:
4. Right Join
Vse vrstice iz desne tabele se ujemajo z levimi vrsticami tabele. Če leva tabela nima nobene vrstice, se napolni NULL (upoštevajte id 100). Vrstice z leve tabele bodo preskočene, če se ujemanje ne najde v desni tabeli (upoštevajte id 106).
Število Mapper-1
Število reduktorjev-0
Ukaz
Izhod:
Zaključek - Pridruži se v panju
"Pridruži se", kot pove beseda, se lahko pridruži dve ali več tabel v bazi podatkov. Podobno je združevanju v SQL. Spoji se uporabljajo za pridobivanje različnih izhodov z več tabelami, tako da jih kombiniramo na podlagi določenih stolpcev. Na podlagi zahteve se lahko odločite, katera združitev vam bo pomagala. Na primer, če želite preveriti, kakšen je id v levi tabeli, ne pa v desni tabeli, lahko preprosto uporabite levo pridruževanje. V spojih panja se lahko izvede različne optimizacije, odvisno od zahtevnosti. Nekaj primerov so razdelitvene povezave, podvajanje in polpriključitve.
Priporočeni članki
To je vodnik za Pridružitve v panju. Tukaj razpravljamo o vrstah združevanja, kot so polno pridruževanje, notranje združevanje, levo združevanje in desno združevanje v panju skupaj z njegovim ukazom in izhodom. Če želite izvedeti več, si oglejte tudi naslednje članke -
- Kaj je panj?
- Ukazi panj
- Izobraževanje s panjom (2 tečaja, 5+ projektov)
- Apache Pig vs Apache Pive - Top 12 uporabnih razlik
- Značilnosti možnosti pive
- Uporaba ORDER BY Function v panju
- Prvih 6 vrst združitev v MySQL s primeri