Hive - Загрузить данные в таблицу
Таблицы Hive предоставляют нам схему для хранения данных в различных форматах (например, CSV). Hive предоставляет несколько способов добавления данных в таблицы. Мы можем использовать запросы DML (Data Manipulation Language) в Hive для импорта или добавления данных в таблицу. Также можно напрямую поместить таблицу в улей с помощью команд HDFS. Если у нас есть данные в реляционных базах данных, таких как MySQL, ORACLE, IBM DB2 и т. Д., Мы можем использовать Sqoop для эффективной передачи петабайт данных между Hadoop и Hive. В этом конкретном руководстве мы будем использовать запросы Hive DML для загрузки или ВСТАВКИ данных в таблицу Hive.
Чтобы выполнить описанную ниже операцию, убедитесь, что ваш улей работает. Ниже приведены инструкции по запуску куста в вашей локальной системе.
Шаг 1. Запустите все свои Hadoop Daemon
start-dfs.sh # это запустит namenode, datanode и вторичный namenode start-yarn.sh # это запустит диспетчер узлов и диспетчер ресурсов jps # Чтобы проверить запущенные демоны
Шаг 2. Запустите куст с терминала
улей
В hive с операторами DML мы можем добавлять данные в таблицу Hive двумя разными способами .
- Использование команды INSERT
- Заявление о загрузке данных
1. Использование команды INSERT
Синтаксис:
ВСТАВИТЬ В ТАБЛИЦУ <имя_таблицы> ЗНАЧЕНИЯ (<добавить значения в соответствии с сущностью столбца>);
Пример:
Чтобы вставить данные в таблицу, давайте создадим таблицу с именем ученик (по умолчанию куст использует свою базу данных по умолчанию для хранения таблиц улья) .
Команда:
СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ student ( Student_Name STRING, Student_Rollno INT, Student_Marks FLOAT) ФОРМАТ СТРОКИ УДАЛЕН ПОЛЯ, ЗАКОНЧЕННЫЕ ',';
Мы успешно создали таблицу студентов в базе данных по умолчанию Hive с атрибутами Student_Name , Student_Rollno и Student_Marks соответственно.
Теперь давайте вставим данные в эту таблицу с помощью запроса INSERT.
ВСТАВИТЬ запрос:
ВСТАВИТЬ В ТАБЛИЦУ ученические ЦЕННОСТИ ('Дикшант', 1, '95 '), (' Акшат ', 2,' 96 '), (' Дхрув ', 3, '90');
Мы можем проверить данные таблицы студентов с помощью следующей команды.
ВЫБРАТЬ * ОТ студента;
2. Заявление о загрузке данных
Hive предоставляет нам возможность загружать предварительно созданные сущности таблиц либо из нашей локальной файловой системы, либо из HDFS. Оператор LOAD DATA используется для загрузки данных в таблицу куста.
Синтаксис:
ЗАГРУЗИТЬ ДАННЫЕ [ЛОКАЛЬНЫЙ] INPATH '<Расположение данных таблицы>' [ПЕРЕЗАПИСАТЬ] В ТАБЛИЦУ <имя_таблицы>;
Примечание:
- LOCAL Switch указывает что данные, которые мы загружаем, доступны в нашей локальной файловой системе. Если переключатель LOCAL не используется, куст будет рассматривать местоположение как местоположение пути HDFS.
- Переключатель OVERWRITE позволяет нам перезаписывать данные таблицы.
Давайте создадим файл CSV (значения, разделенные запятыми) с именем data.csv, поскольку мы предоставили ',' в качестве признака конца поля при создании таблицы в кусте. Мы создаем этот файл в нашей локальной файловой системе по адресу / home / dikshant / Documents для демонстрационных целей.
Команда:
cd / home / dikshant / Documents // Для смены каталога touch data.csv // используем для создания файла data.csv nano data.csv // nano - это редактор командной строки Linux для редактирования файлов cat data.csv // cat используется для просмотра содержимого файла
ЗАГРУЗИТЕ ДАННЫЕ в таблицу студенческого улья с помощью приведенной ниже команды.
ЗАГРУЗИТЬ ДАННЫЕ ЛОКАЛЬНЫЙ INPATH '/home/dikshant/Documents/data.csv' В ТАБЛИЦУ ученик;
Давайте посмотрим на содержимое таблицы учеников, чтобы увидеть эффект с помощью приведенной ниже команды.
ВЫБРАТЬ * ОТ студента;
Мы видим, что мы успешно добавили данные в таблицу учеников.