Skip to content

annakor98/2023-autumn-ab-ads-hw-10

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

2023-autumn-ab-ads-hw-10

  1. Создать ключ для подключения к ВМ Yandex Cloud:

    • Выполнить команду ssh-keygen -t ed25519
    • Ввести имя файла для ключа (при пустом вводе ключ будет создан с именем по умолчанию id_ed25519 в папке ~/.ssh) и пароль для закрытого ключа.
    • Скопировать публичную часть из вывода команды: cat ~/.ssh/id_ed25519.pub и направить Ане, а также указать имя пользователя в формате первая буква имени + фамилия (например, akoryazhkina)
    • Аня заведет вам пользователя и даст ip-адрес ВМ
    • После этого для подключения выполнить команду: ssh <имя_пользователя>@<публичный_IP-адрес_ВМ>. При первом подлючении ввести yes в ответ на предупреждение и затем ваш пароль
  2. Для запуска Jupyter Notebook:

    • Выполнить jupyter notebook password, ввести и подтвердить пароль для Jupyter Notebook
    • Выполнить jupyter notebook --no-browser и посмотреть порт, например, если в выводе
      Jupyter Notebook 6.5.4 is running at:
      http://localhost:8888/
      Значит порт - 8888
    • Теперь в отдельном терминале (без подключения к ssh):
      ssh -L <порт>:localhost:<порт> <имя_пользователя>@<публичный_IP-адрес_ВМ>
    • В браузере открыть localhost:<порт> и ввести пароль от Jupyter Notebook
  3. Создать новый ноутбук, в нем завести Spark-сессию со следующими параметрами:

    • Driver - 1 ядро
    • Executors - динамическая аллокация от 0 до 2 инстансов, по 1 ядру на каждый
    • Задать имя spark - приложения
  4. В ноутбуке выполнить (на основе файлов clients.csv, purchases.csv, products.csv из папки /tmp/data/:

    • Найти топ-5 самых популярных товаров у клиентов каждого пола (женский/мужской/не указан)
    • Для каждого из найденных товаров вывести долю чеков, в которых представлен этот товар (во всех чеках и в чеках рассматриваемой категории по полу)
    • Найти топ-5 самых крупных поставщиков (поле vendor) по доле чеков, в которых представлены товары данного поставщика, для них также вывести долю чеков, в которых представлены товары данного поставщика
  5. Оформить поиск самых популярных товаров для клиентов каждого пола в py-скрипт, принимающий в качестве аргумента флаг пола (F/M/U) и подготовить bash-скрипт для запуска с помощью spark-submit в client-mode. Параметры Spark-сессии прописать в качестве аргументов spark-submit

  6. Придумать и реализовать любую полезную user defined function

Критерии:

  1. Заведен пользователь на ВМ - +1
  2. Реализовано создание Spark-сессии с необходимыми параметрами - +1
  3. Найдены самые популярные товары у клиентов каждого пола и самые популярные поставщики - +3
  4. Для вычислений использован модуль pyspark.sql.Window - +2
  5. Реализован скрипт для spark-submit - +2
  6. Реализована user defined function - +1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published