Введение
В таинственном царстве Датагония, рыцарь данных Леонард, вооружившись доблестностью и решительностью, отправился в необычайное путешествие. Процветание королевства зависело от того, чтобы harnessing the power of data, и миссия Леонарда состояла в том, чтобы объединить разнообразные датасеты, рассеянные по всей стране. С надежными инструментами Hadoop у него под рукой, он пошел на встречу с вызовами, которые ждали его впереди.
В vaste fields королевства были хранится ценная информация о урожаях, состоянии почвы и погодных условиях. В шахтах данные о месторождениях полезных ископаемых и темпах добычи ждали интеграции. В оживленных городах были полны записей о торговле, бизнесе и динамике населения. Цель Леонарда состояла в том, чтобы объединить эти различные источники данных в единый, всеобъемлющий датасет, который позволил бы принимать решения в королевстве и способствовал бы прогрессу.
Создать примерные данные
В этом шаге мы создадим несколько файлов с примерами данных, чтобы изучить возможности оператора UNION в Hive.
Во - первых, убедитесь, что вы вошли под пользователем hadoop, выполнив следующую команду в терминале:
su - hadoop
Затем перейдите в директорию /home/hadoop/data и создайте новую директорию под названием crops:
mkdir -p /home/hadoop/data/crops
Далее создайте два файла с именами wheat.csv и corn.csv в директории crops с следующим содержанием:
wheat.csv:
North,2020,50
South,2020,45
East,2020,48
West,2020,42
corn.csv:
North,2020,50
South,2020,58
East,2020,62
West,2020,55
Вы можете использовать любой текстовый редактор, чтобы создать эти файлы.
Загрузить данные в таблицы Hive
В этом шаге мы создадим таблицы Hive и загрузим в них примерные данные.
Во - первых, запустите Hive CLI, выполнив следующую команду в терминале:
hive
После входа в Hive CLI создайте базу данных под названием agriculture:
CREATE DATABASE agriculture;
Далее переключитесь на базу данных agriculture:
USE agriculture;
Создайте таблицу под названием wheat с соответствующей схемой:
CREATE TABLE wheat (
region STRING,
year INT,
yield INT
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
Загрузите данные из файла wheat.csv в таблицу wheat:
LOAD DATA LOCAL INPATH '/home/hadoop/data/crops/wheat.csv' OVERWRITE INTO TABLE wheat;
Повторите этот процесс для таблицы corn:
CREATE TABLE corn (
region STRING,
year INT,
yield INT
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INPATH '/home/hadoop/data/crops/corn.csv' OVERWRITE INTO TABLE corn;
Вы можете проверить данные в таблицах с помощью инструкции SELECT:
SELECT * FROM wheat;
SELECT * FROM corn;
Выполнить операцию UNION
Теперь, когда наши данные загружены в таблицы Hive, мы можем использовать оператор UNION, чтобы объединить результаты двух или более запросов.
В Hive CLI выполните следующий запрос:
CREATE TABLE result_1
AS
SELECT region, year, yield FROM wheat
UNION
SELECT region, year, yield FROM corn;
SELECT * FROM result_1;
Этот запрос объединит результаты таблиц wheat и corn, фактически создав единый датасет со всеми регионами, годами и урожайностями.
Вы также можете выполнить UNION ALL, который включает дублирующиеся строки в наборе результатов:
SELECT region, year, yield FROM wheat
UNION ALL
SELECT region, year, yield FROM corn;
Обратите внимание, что имена столбцов и типы данных должны совпадать во всех запросах, используемых в операции UNION или UNION ALL.
Расширенные операции UNION (по выбору)
Вы можете дальнейше изучить оператор UNION, комбинируя более сложные запросы или используя его с другими конструкциями Hive, такими как фильтрация или агрегация.
Например, вы можете объединить результаты запроса с GROUP BY с другим запросом:
CREATE TABLE result_2
AS
SELECT region, SUM(yield) AS total_yield FROM wheat GROUP BY region
UNION
SELECT region, yield FROM corn;
SELECT * FROM result_2;
Или вы можете отфильтровать результаты перед их объединением:
SELECT region, year, yield FROM wheat WHERE year = 2020
UNION
SELECT region, year, yield FROM corn WHERE year = 2020 AND yield > 60;
Не стесняйтесь экспериментировать с разными комбинациями и увидеть, как оператор UNION может помочь вам объединить данные из нескольких источников.
Резюме
В этом практическом занятии мы изучили применение оператора UNION в Apache Hive, мощном инструменте для хранения и анализа данных в экосистеме Hadoop. Создав примерные наборы данных и загрузив их в таблицы Hive, мы узнали, как комбинировать результаты нескольких запросов с использованием UNION и UNION ALL. Эта мощная функция позволяет нам объединять данные из различных источников, что способствует проведению комплексного анализа и принятию обоснованных решений.
Во время путешествия рыцаря-левша мы увидели трансформирующую силу интеграции данных. Объединив разнообразные наборы данных из полей, шахт и городов королевства, рыцарь-левший предоставил лицам, принимающим решения, всестороннее представление, открывая путь к прогрессу и процветанию в царстве Датагонии.
Это практическое занятие не только дало возможность приобрести навыки работы с Hive и оператором UNION, но и напомнило о важности объединения данных для извлечения полезных знаний и стимулирования инноваций. Освоив эти методы, мы можем стать самим рыцарями данных, вооруженными инструментами для решения сложных задач обработки данных и создания более ясного будущего.



