Введение
В огромном пустом пустыне разражается лютый песчаный буревестник, поднимая в воздух тучи песка, которые скрывают горизонт. В центре кружащего хаоса величественный песчаный дракон парит по небу, его чешуя блестит ярким золотым оттенком. Эта могущественнаяCreature 肩负着 важнейшую миссию: собрать важную информацию из рассеянных источников данных и раскрыть скрытые инсайты, которые могут помочь пригладить безумный песчаный буревестник.
Цель этого лабораторного занятия - дать вам навыки использовать силу Hadoop и Hive, позволяя вам объединять и комбинировать данные из нескольких источников. Освоив искусство объединения данных, вы откроете способность разгадывать сложные связи и выявлять ценные шаблоны, так же, как песчаный дракон пытается раскрыть секреты лютого песчаного буревестоника.
Настройка среды
В этом шаге вы подготовите необходимую среду для работы с Hadoop и Hive.
- Откройте окно терминала и переключитесь на пользователя
hadoop, выполнив следующую команду:
su - hadoop
- Перейдите в директорию
/home/hadoop, выполнив следующую команду:
cd /home/hadoop
- Создайте новую директорию с именем
join_labдля хранения ваших файлов:
mkdir join_lab
- Перейдите в директорию
join_lab:
cd join_lab
Теперь у вас есть специальная рабочая область для этого лабораторного занятия.
Создание примерных наборов данных
В этом шаге вы создадите два примерных набора данных для практики операций объединения в Hive.
- Создайте новый файл с именем
employees.txtс таким содержанием:
101,John Doe,Sales
102,Jane Smith,Marketing
103,Michael Johnson,IT
104,Emily Davis,HR
105,Adam Wilson,Finance
106,Lisa Brown,Operations
- Создайте еще один файл с именем
departments.txtс таким содержанием:
1,Sales,New York
2,Marketing,Los Angeles
3,IT,Chicago
4,HR,San Francisco
- Запустите Hive shell, выполнив следующую команду:
hive
- Загрузите наборы данных в Hive, выполнив следующие команды:
CREATE TABLE employees (emp_id INT, name STRING, dept STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/employees.txt' OVERWRITE INTO TABLE employees;
CREATE TABLE departments (dept_id INT, dept_name STRING, location STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/departments.txt' OVERWRITE INTO TABLE departments;
Эти команды создадут две таблицы Hive, employees и departments, и загрузят данные из соответствующих текстовых файлов.
Выполнение внутреннего соединения
В этом шаге вы узнаете, как выполнить операцию внутреннего соединения в Hive для объединения данных из таблиц employees и departments.
Выполните следующий запрос Hive для выполнения внутреннего соединения:
CREATE TABLE result_1
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
JOIN departments d
ON e.dept = d.dept_name;
SELECT * FROM result_1;
Этот запрос объединяет таблицы employees и departments на основе столбцов dept и dept_name соответственно. Он извлекает столбцы emp_id, name, dept_name и location из результирующего объединения.
Результат должен выглядеть так:
101 John Doe Sales New York
102 Jane Smith Marketing Los Angeles
103 Michael Johnson IT Chicago
104 Emily Davis HR San Francisco
Внутреннее соединение объединяет строки из двух таблиц на основе заданного условия. В этом случае оно сопоставляет значения dept из таблицы employees с значениями dept_name из таблицы departments. Результат включает только строки, для которых условие соединения выполняется, то есть значения dept и dept_name совпадают.
Выполнение левого внешнего соединения
В этом шаге вы узнаете, как выполнить операцию левого внешнего соединения в Hive.
Выполните следующий запрос Hive для выполнения левого внешнего соединения:
CREATE TABLE result_2
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
LEFT OUTER JOIN departments d
ON e.dept = d.dept_name;
SELECT * FROM result_2;
Этот запрос выполняет левое внешнее соединение между таблицами employees и departments. Он включает все строки из левой таблицы (employees) и соответствующие строки из правой таблицы (departments). Если в правой таблице нет совпадения, результат будет содержать значения NULL для столбцов из правой таблицы.
Результат должен выглядеть так:
101 John Doe Sales New York
102 Jane Smith Marketing Los Angeles
103 Michael Johnson IT Chicago
104 Emily Davis HR San Francisco
105 Adam Wilson NULL NULL
106 Lisa Brown NULL NULL
Левое внешнее соединение возвращает все строки из левой таблицы (employees) и соответствующие строки из правой таблицы (departments). Если в левой таблице есть строка, для которой нет соответствующей строки в правой таблице, результат будет содержать значения NULL для столбцов из правой таблицы.
Резюме
В этом лабораторном занятии вы узнали, как работать с Hadoop и Hive для выполнения операций объединения над наборами данных. Вы создали примерные наборы данных и загрузили их в таблицы Hive, что позволило вам практиковать внутренние и левые внешние соединения. Освоив эти операции объединения, вы приобрели способность объединять и анализировать данные из нескольких источников, точно так же, как змея-пустыня объединяет информацию из рассеянных источников, чтобы разгадать секреты бурящего песчаного шторма.
Во время всего этого лабораторного занятия я старался обеспечить структурированный и погружающийся опыт обучения, проведя вас по каждому шагу с четкими инструкциями, примерами кода и объяснениями. Использование проверок позволило вам проверить свой прогресс и определить области для улучшения. Создав сценарий, который соответствует проблемам, с которыми сталкиваются при анализе данных, я надеюсь, что сделал процесс обучения более интересным и актуальным.
В целом, это лабораторное занятие не только оснастило вас техническими навыками в области Hadoop и Hive, но и способствовало более глубокому пониманию важности интеграции и анализа данных при решении сложных задач. Как и змея-пустыня, которая не останавливается в своем деле, ваши новые знания помогут вам с уверенностью и творчеством справляться с реальными задачами в области обработки данных.



