Целью данной работы является получение навыков разработки витрины данных и последующей её интеграции.
- В Dockerfile приложения был установлен SBT to build Scala projects.
- На Scala был реализован функционал для работы с базой данных.
- На Scala был реализован функционал для предобработки данных.
- На Scala был реализован объект витрины данных.
- Объект витрины данных был интегрирован в приложение на Python путём добавления собранного jar-файла в конфигурацию Spark.
Для запуска базы данных нужно выполнить следующую команду из корня репозитория:
docker compose -f database/docker-compose.yaml up -d
Для запуска среды приложения нужно выполнить следующие команды из корня репозитория:
docker-compose build
docker-compose up -d
docker exec -i -t [container id] bash
Далее, для запуска Jupyter Notebook (ноутбук будет доступен на порту 8888):
jupyter notebook --ip 0.0.0.0 --no-browser --allow-root
Для запуска скриптов нужно перейти в папку src Docker контейнера и выполнить команду:
python [script name]
Перед запуском src/kmeans.py
нужно запустить src/load_data_to_db.py
для заполнения базы данных.
Во время запущенного Jupyter Notebook вы можете перейти по адресу localhost:4444
для доступа к Spark веб-интерфейсу.
Также доступ можно получить и при запуске src
-кода, для этого нужно добавить вызов функции keep_spark_web_ui_alive
из utils.spark
перед закрытием SparkSession
.
- Была реализована и интегрирована витрина данных на Scala.
- Был получен опыт написания скриптов на Scala.
- Был получен опыт интеграции Scala-кода в PySpark-приложение.