Въведение в Съединения в кошера

Съединенията се използват за извличане на различни изходи с помощта на множество таблици, като се комбинират на базата на конкретни колони. Сега, за да бъдат таблиците в Hive, ние трябва да създадем таблиците и да заредим данните във всяка таблица. Тук ще използваме две таблици (клиент и продукт) за разбиране на целта.

Различни команди

По-долу са командите за създаване и зареждане на данните в тези таблици:

За таблица на клиента : 6 реда

Създайте команда

Създайте външна таблица, ако няма клиент (идентификационен низ, низ от име, градски низ)
формат на реда е ограничен
полета, прекратени от „„
местоположение '/user/hive/warehouse/test.db/customer'
tblproperties ("skip.header.line.count" = "1");

Зареждане на команда

Заредете локални данни в пътя '/home/cloudera/Customer_Neha.txt' в клиента на таблицата;

Данни за клиентска таблица

За таблица с продукти : 6 реда

Създайте команда

Създайте външна таблица, ако няма продукт (Cust_Id низ,
Продуктов низ, Цена низ)
формат на реда е ограничен
полета, прекратени от „„
местоположение '/user/hive/warehouse/test.db/product'
tblproperties ("skip.header.line.count" = "1");

Команда за зареждане

Заредете локалния път за данни '/home/cloudera/Product_Neha.txt' в продукта на таблицата;

Данни за продуктовата таблица

Забележка : Използвам "свойства (" skip.header.line.count "=" 1 ")", за да пропусна първия ред от моите данни, който е заглавен към мен.

За да проверите схемата на таблицата, използвайте командата „desc table name;“


Сега имаме данни в таблици, Нека да си играем с него ????

Видове съединения в кошера

Присъединяване - Това ще даде кръстосания продукт на двете данни на таблицата като изход. Както можете да видите, имаме 6 реда във всяка таблица. Така изходът за Join ще бъде 36 реда. Броят на картографите-1. Въпреки това, не се използва намаление на оператора.

команда

изход:

1. Пълно присъединяване

Пълното присъединяване без условие за съвпадение ще даде кръстосания продукт на двете таблици.

Брой картографи-2

Брой редуктор-1

Това може да се постигне и с помощта на „Join“, но с по-малък брой картографи и редуктори.

Пълно Присъединяване към условията на мача

Всички редове ще бъдат съединени от двете таблици. Ако редовете не са съпоставени в друга таблица, тогава NULL ще бъде попълнен в изход (Спазвайте Id-100, 106). Няма пропуснати редове.

Брой картографи-2

Брой редуктор-1

команда

изход:

2. Вътрешно присъединяване

Ако вътрешното съединение се използва без клавиша „on“, то ще даде кръстосания продукт като изход. От нас обаче се изисква да използваме специфичните колони, въз основа на които може да се извърши съединяването. Колоната Id от таблицата на клиента и колоната Cust_id от таблицата с продукти са моите конкретни колони. Изходът съдържа редовете, където Id и Cust_Id съвпадат. Можете да наблюдавате, редове с Id-106 и Cust_Id-100 се пропускат в изхода, защото не присъстват в друга таблица.

команда

изход:

3. Ляво съединение

Всички редове от лявата таблица са съединени с съвпадащи редове от дясната таблица. Ако дясната таблица има редове с идентификатори, които не присъстват в лявата таблица, тогава тези редове ще бъдат пропуснати (спазвайте Cust_Id-100 в изхода). Ако дясната таблица няма редове с идентификатори, които се намират в лявата таблица, NULL ще бъде попълнен в изход (Спазвайте Id-106 в изхода).

Брой на Mapper-1

Брой редуктор-0

команда

изход:

4. Правилно присъединяване

Всички редове от дясната таблица са съпоставени с леви редове на таблицата. Ако лявата таблица няма ред, тогава NULL ще бъде попълнен (Спазвайте Id 100). Редовете от лявата таблица ще бъдат пропуснати, ако това съвпадение не бъде намерено в дясната таблица (Вижте Id 106).

Брой на Mapper-1

Брой редуктор-0

команда

изход:

Заключение - Присъединява се в кошер

„Присъединете се“, както думата подсказва, може да се присъедини към две или повече таблици в базата данни. Подобно е на присъединяването в SQL. Съединенията се използват за извличане на различни изходи с помощта на множество таблици, като се комбинират на базата на конкретни колони. Въз основа на изискването може да се реши кой член ще работи за вас. Например, ако искате да проверите какви са идентификационните номера в лявата таблица, но не и в дясната таблица, можете просто да използвате присъединяване на ляво. Различни оптимизации могат да се извършват при свързване на кошера в зависимост от сложността. Някои от примерите са разделящи се съединения, репликационни съединения и полусъединения.

Препоръчителни статии

Това е ръководство за Съединения в кошер. Тук обсъждаме видовете съединения като пълно присъединяване, вътрешно присъединяване, ляво присъединяване и дясно присъединяване в кошер заедно с неговата команда и изход. Можете също да разгледате следните статии, за да научите повече-

  1. Какво е кошер?
  2. Команди на кошера
  3. Обучение на кошера (2 курса, 5+ проекта)
  4. Apache Pig vs Apache Hive - Топ 12 полезни разлики
  5. Характеристики на алтернативите на кошера
  6. Използване на ПОРЪЧКА ПО функция в кошер
  7. Топ 6 вида съединения в MySQL с примери

Категория: