Интеграция Hadoop в Unified Data Quest

HadoopHadoopBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В таинственном царстве Датагония, рыцарь данных Леонард, вооружившись доблестностью и решительностью, отправился в необычайное путешествие. Процветание королевства зависело от того, чтобы 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, но и напомнило о важности объединения данных для извлечения полезных знаний и стимулирования инноваций. Освоив эти методы, мы можем стать самим рыцарями данных, вооруженными инструментами для решения сложных задач обработки данных и создания более ясного будущего.