Обработка данных из Object Storage
На этой странице вы найдете лабораторную работу по обработке данных из Evolution Object Storage с помощью Managed Spark.
Постановка задачи
Необходимо построить витрину данных, отражающую полную информацию о клиентах и продажах.
Таблица client.csv содержит информацию о клиентах: номер заказа, дату, город, имя и фамилию клиента, модель автомобиля и др.
Таблица sales.csv содержит информацию о продажах: номер заказа и его сумму.
В результате должна получиться таблица, в которой данные объединены по номеру заказа.
Перед началом работы
-
Если вы уже зарегистрированы, войдите под своей учетной записью.
Создайте кластер Data Platform, в котором будет размещен инстанс.
Назовите кластер «dp-labs».
Скачайте и установите root-сертификат на устройство.
Создайте пароль и добавьте его в Secret Manager. Этот секрет станет паролем для доступа к интерфейсу Spark.
Создайте бакет Object Storage
Создайте бакет Object Storage по инструкции.
Установите и запустите CyberDuck по инструкции.
Создайте инстанс Spark
Перейдите в раздел Evolution и выберите сервис Managed Spark.
Нажмите Создать инстанс.
В блоке Общие параметры:
Название — spark-lab.
Кластер — dp-labs.
В блоке Конфигурация оставьте значения по умолчанию.
В блоке Настройки выберите:
Место хранения — Object Storage.
Бакет — ранее созданный бакет S3.
В поле Лог-группа выберите группу логов.
Нажмите Продолжить.
В блоке Сетевые настройки выберите:
Зона доступности — зону доступности.
Подсеть — подсеть со sNAT-шлюзом и с DNS-сервером.
Если нужной подсети нет, создайте новую, нажав Создать новую подсеть.
В блоке Настройки доступа:
Подключить публичный хост — активируйте опцию, чтобы опубликовать инстанс в интернете. Интерфейсы Spark History Server и Spark UI станут доступны из интернета.
Логин — задайте логин для доступа к Spark.
Пароль — выберите секрет для доступа к Spark.
Вы можете создать новый секрет, нажав Создать новый секрет.
Нажмите Создать.
Создание инстанса занимает около 15 минут. Пока создается инстанс, выполните шаги по подготовке структуры бакета Object Storage, данных и скрипта.
Подготовьте данные и скрипт
В лабораторной работе вам понадобятся:
таблица в формате CSV client.csv, которая содержит информацию о клиентах и деталях заказа;
таблица в формате CSV sales.csv, которая содержит информацию о продажах: ID заказа и сумму.
Python-скрипт, который:
читает таблицы sales.csv и client.csv;
объединяет таблицы по колонке order_number;
выгружает перечисленные в скрипте колонки.
Выполните следующие шаги, чтобы подготовить структуру бакета Object Storage и загрузить на него нужные файлы.
Подготовьте файлы CSV
Скачайте sales.csv и client.csv. Нажмите Скачать в правом верхнем углу.
Откройте CyberDuck.
В бакете Object Storage создайте папку input.
В этой папке создайте папку car-sales.
Переместите CSV-таблицы в папку car-sales.
Скопируйте скрипт задачи
Скопируйте скрипт и назовите файл spark-sales-etl.py.
Python-скриптВ строке bucket_name = 'your-bucket-name' замените your-bucket-name на название бакета Object Storage.
В CyberDuck создайте папку jobs.
Поместите скрипт в нее.
В результате получится следующая структура бакета с файлами:
Создайте задачу Spark
Для продолжения работы убедитесь, что статус инстанса Spark изменился на «Готов».
Перейдите в раздел Evolution и выберите сервис Managed Spark.
В списке инстансов Managed Spark откройте карточку инстанса spark-lab.
Перейдите во вкладку Задачи.
Нажмите Создать задачу.
В блоке Общие параметры введите название задачи, например spark-sales.
В блоке Скрипт приложения выберите Python.
Укажите путь к запускаемой программе. В данном случае путь s3a://{bucket_name}/jobs/spark-sales-etl.py, где {bucket_name} — название созданного бакета Object Storage.
Нажмите Создать.
Задача Spark начнет выполняться и отобразится на странице инстанса во вкладке Задачи.
Мониторинг выполнения задачи
Вы можете посмотреть логи задачи, когда задача находится в статусах «Выполняется» и «Готово», то есть как в процессе выполнения, так и по завершению задачи.
Перейдите к логам
Откройте карточку инстанса.
Во вкладке Задачи скопируйте ID задачи.
Нажмите
и выберите Перейти к логам.
В поле Запрос введите labels.spark_job_id="ID", где ID — идентификатор задачи, скопированный ранее.
Нажмите Обновить.
В таблице отобразятся логи задачи. Нажмите на строку, чтобы развернуть запись.
Перейдите в Spark UI
Откройте карточку инстанса.
Во вкладке Задачи нажмите Spark UI.
В соседней вкладке откроется интерфейс Spark UI.
Вернитесь на карточку инстанса и откройте вкладку Информация.
Скопируйте данные из блока Настройки доступа.
Введите данные инстанса:
Username — значение поля Пользователь.
Password — значение секрета в поле Пароль.
В интерфейсе Spark UI вы найдете информацию о ходе выполнения задачи.


Проверьте результат
Когда задача перейдет в статус «Выполнено», откройте CyberDuck. В бакете появятся:
новая папка sales;
таблица с объединенными данными из sales.csv и client.csv.
- Постановка задачи
- Перед началом работы
- Создайте бакет Object Storage
- Создайте инстанс Spark
- Подготовьте данные и скрипт
- Создайте задачу Spark
- Мониторинг выполнения задачи
- Проверьте результат