-
Создать ключ для подключения к ВМ Yandex Cloud:
- Выполнить команду
ssh-keygen -t ed25519
- Ввести имя файла для ключа (при пустом вводе ключ будет создан с именем по умолчанию
id_ed25519
в папке~/.ssh
) и пароль для закрытого ключа. - Скопировать публичную часть из вывода команды:
cat ~/.ssh/id_ed25519.pub
и направить Ане, а также указать имя пользователя в формате первая буква имени + фамилия (например, akoryazhkina) - Аня заведет вам пользователя и даст ip-адрес ВМ
- После этого для подключения выполнить команду:
ssh <имя_пользователя>@<публичный_IP-адрес_ВМ>
. При первом подлючении ввестиyes
в ответ на предупреждение и затем ваш пароль
- Выполнить команду
-
Для запуска
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
- Выполнить
-
Создать новый ноутбук, в нем завести
Spark
-сессию со следующими параметрами:- Driver - 1 ядро
- Executors - динамическая аллокация от 0 до 2 инстансов, по 1 ядру на каждый
- Задать имя
spark
- приложения
-
В ноутбуке выполнить (на основе файлов
clients.csv
,purchases.csv
,products.csv
из папки/tmp/data/
:- Найти топ-5 самых популярных товаров у клиентов каждого пола (женский/мужской/не указан)
- Для каждого из найденных товаров вывести долю чеков, в которых представлен этот товар (во всех чеках и в чеках рассматриваемой категории по полу)
- Найти топ-5 самых крупных поставщиков (поле
vendor
) по доле чеков, в которых представлены товары данного поставщика, для них также вывести долю чеков, в которых представлены товары данного поставщика
-
Оформить поиск самых популярных товаров для клиентов каждого пола в
py
-скрипт, принимающий в качестве аргумента флаг пола (F
/M
/U
) и подготовитьbash
-скрипт для запуска с помощьюspark-submit
вclient-mode
. ПараметрыSpark
-сессии прописать в качестве аргументовspark-submit
-
Придумать и реализовать любую полезную
user defined function
Критерии:
- Заведен пользователь на ВМ - +1
- Реализовано создание
Spark
-сессии с необходимыми параметрами - +1 - Найдены самые популярные товары у клиентов каждого пола и самые популярные поставщики - +3
- Для вычислений использован модуль
pyspark.sql.Window
- +2 - Реализован скрипт для
spark-submit
- +2 - Реализована
user defined function
- +1