Liitub tarus - Õppige liitumiste tüüpe koos selle käskude ja väljunditega

Lang L: none (table-of-contents):

Anonim

Taru liitumiste tutvustus

Liitmikke kasutatakse erinevate tabelite abil erinevate väljundite saamiseks, kombineerides neid konkreetsete veergude alusel. Nüüd, kui tabelid asuvad tarus, peame tabelid looma ja tabelitesse andmed laadima. Selle eesmärgi mõistmiseks kasutame siin kahte tabelit (klient ja toode).

Erinevad käsud

Allpool on nende tabelite andmete loomise ja laadimise käsud:

Kliendilaua jaoks : 6 rida

Loo käsk

Looge väline tabel, kui klienti pole olemas (id string, nimisõna, linn string)
rea formaat on piiritletud
väljad, mille lõpetab ''
asukoht '/user/hive/warehouse/test.db/customer'
tblproperties (“skip.header.line.count” = ”1”);

Laadimiskäsk

Laadige andmed lokaalses asukohas '/home/cloudera/Customer_Neha.txt' tabeliklienti;

Klienditabeli andmed

Tootetabel : 6 rida

Loo käsk

Looge väline tabel, kui toodet pole olemas (Cust_Id string,
Tootesari, hinnastring)
rea formaat on piiritletud
väljad, mille lõpetab ''
asukoht '/user/hive/warehouse/test.db/product'
tblproperties (“skip.header.line.count” = ”1”);

Laadimiskäsk

Laadige tabelisse toote andmete lokaalne tee '/home/cloudera/Product_Neha.txt';

Tootetabeli andmed

Märkus . Ma kasutan oma omaduste esimese rea, mis on mulle päise, vahele jätmiseks omadusi ("skip.header.line.count" = "1") ”.

Tabeliskeemi kontrollimiseks kasutage käsku „desc table name;”


Nüüd on meil tabelites andmeid, mängime sellega ????

Taru liitumiste tüübid

Liitu - see annab nii tabeli andmete risttulemina väljundi. Nagu näete, on igas tabelis 6 rida. Nii et liitumise väljund on 36 rida. Kaardistajate arv-1. Siiski ei kasutata operaatorile mingit taandamist.

Käsk

Väljund:

1. Täielik liitumine

Täielik liitumine ilma matšitingimusteta annab mõlema tabeli risttoote.

Kaardistajate arv-2

Reduktor-1 arv

Seda on võimalik saavutada ka liitumisega, kuid vähem kaardistajate ja reduktorite arvuga.

Täielik liitumine matšitingimustega

Kõik read ühendatakse mõlemast tabelist. Kui read ei vasta mõnes teises tabelis, siis sisestatakse väljundis NULL (jälgige Id-100, 106). Ühtegi rida ei jäeta vahele.

Kaardistajate arv-2

Reduktor-1 arv

Käsk

Väljund:

2. Sisemine liitumine

Kui sisemist liitmikku kasutatakse ilma sisse lülitamata, annab see väljundina ristsuhte. Peame siiski kasutama konkreetseid veerge, mille alusel liitmist saab teostada. Klienditabeli veerg Id ja tootetabeli veerg Cust_id on minu konkreetsed veerud. Väljund sisaldab ridu, kus Id ja Cust_Id vastavad. Võite jälgida, read Id-106 ja Cust_Id-100 jäetakse väljundisse vahele, kuna neid pole üheski teises tabelis.

Käsk

Väljund:

3. Vasakpoolne liitumine

Kõik vasakpoolsest tabelist olevad read on ühendatud parempoolsest tabelist vastavate ridadega. Kui parempoolsel tabelil on ID-dega read, mida vasakpoolses tabelis pole, siis need read jäetakse vahele (väljundina jälgige Cust_Id-100). Kui parempoolsel tabelil pole vasakpoolse tabeli ID-dega ridu, sisestatakse väljundis NULL (väljundis jälgige Id-106).

Mapper-1 arv

Reduktor-0 arv

Käsk

Väljund:

4. Parempoolne liitumine

Kõik parempoolse tabeli read sobivad vasakpoolsete tabeliridadega. Kui vasakul tabelil pole ühtegi rida, siis täidetakse NULL (Vaadake Id 100). Vasakpoolsest tabelist pärit read jäetakse vahele, kui seda vastet ei leidu parempoolsest tabelist (vt Id 106).

Mapper-1 arv

Reduktor-0 arv

Käsk

Väljund:

Järeldus - liitub taruga

Nagu sõna "liituma", saab andmebaasis ühendada kaks või enam tabelit. See sarnaneb liitumistega SQL-is. Liitmikke kasutatakse erinevate tabelite abil erinevate väljundite saamiseks, kombineerides neid konkreetsete veergude alusel. Nõude põhjal saab otsustada, milline liitumine teile sobib. Näiteks kui soovite kontrollida vasakpoolses tabelis olevate ID-de olemasolu, kuid mitte parempoolses tabelis, võite lihtsalt kasutada vasakpoolset liitumist. Sõltuvalt keerukusest võib tarutüüpides läbi viia mitmesuguseid optimeerimisi. Mõned näited on ümberjaotamise liitumised, kordusühendused ja poolühendused.

Soovitatavad artiklid

See on juhend Joins in Hive. Siin käsitleme tarude ühendamise tüüpe nagu täielik liitumine, sisemine liitumine, vasakpoolne liitumine ja parempoolne liitumine taruga koos selle käsu ja väljundiga. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Mis on taru?
  2. Taru käsud
  3. Tarutreening (2 kursust, 5+ projekti)
  4. Apache Pig vs Apache Hive - 12 parimat erinevust
  5. Tarude alternatiivide omadused
  6. Funktsiooni ORDER BY kasutamine tarus
  7. MySQL-i 6 parimat liitumistüüpi koos näidetega