📊 ТОП-10 инструментов для Data Science Часть 2
https://t.me/ai_machinelearning_big_data6. Apache Zeppelin
Краткий обзор

Apache Zeppelin – ноутбук c web-интерфейсом, доступный пользователю как на локальном компьютере через браузер, так и на удаленном сервере. Ноутбук позволяет управлять данными, строить интерактивную аналитику и совместно работать в проектах, используя SQL, Scala, Python, R и другие языки.
Apache Zeppelin поддерживает многопользовательский режим с LDAP и конфигурируется для работы на YARN-кластере. Следствием работы поверх кластера является возможность распараллеливания вычислений, что также необходимо в работе с большими данными.
Установка
Инструкции по установке продукта можно прочитать по ссылке (англ.)
Установка потребует от пользователя базовых знаний администрирования UNIX-подобных операционных систем.
Запуск и создание файлов
Запуск Apache Zeppelin в терминале (в UNIX-подобной операционной системе):
На стартовой странице инструмента:
Notebook -> Create new note

Список ранее созданных ноутбуков также отражается на стартовой странице.

Основная рабочая зона
После запуска Apache Zeppelin перед пользователем в браузере открывается ноутбук.

Основная особенность ячеек Zeppelin заключается в том, что внутри одного ноутбука можно запускать ячейки на различных вычислительных ядрах и средах, для чего в первой строке ячейки прописывается специальный указатель, например:
- %sql – для запуска SQL-скрипта;
- %python – для запуска стандартного интерпретатора Python;
- %python.ipython – для запуска IPython интерпретатора (рекомендуется);
- %spark – для запуска Spark-сессии;
- %sh – для выполнения команд оболочки (Shell);
- и др.
Например, для вывода на экран текущей рабочей директории в ячейке необходимо выполнить код:
Для запуска IPython интерпретатора:
Другим значимым функциональным дополнением ноутбука является реализованная по умолчанию возможность визуализации данных. Для этого под ячейкой предусмотрена соответствующая пиктограмма графика.

Особенности
Инструмент используется для работы с большими данными (NoSQL), так как входит в широкую экосистему Apache. Обязательным требованием является знание синтаксиса команд bash.
7. Google Collab
Краткий обзор

Google Colab представляет собой облачный Jupyter Notebook, созданный и поддерживаемый компанией Google.
Ключевое отличие от локального Jupyter Notebook – возможность запуска облачной сессии с графическим / тензорным ускорителем:
Меню -> Среда выполнения -> Сменить среду выполнения

В качестве GPU сервис предлагает 12GB NVIDIA Tesla K80, которая бесплатна для использования на ограниченное время – 12 часов за один запуск. Из одного аккаунта Google в случае использования GPU/TPU доступна только одна активная версия ноутбука. Платного тарифа для пользователей из России не предусмотрено.
Подробнее о лимитах инструмента можно прочитать по ссылке (англ.)
Левая панель инструмента содержит вкладки:
- Содержание.
- Найти и заменить.
- Фрагменты кода.
- Файлы.
Во вкладке Фрагменты кода возможен поиск по шаблонам, что может ускорить работу с типовыми операциями, например такими, как подключение Google Drive к ноутбуку:

Во вкладке Файлы реализована навигация по файловой системе виртуальной машины, в которой запущен ноутбук, а также присутствует возможность монтирования диска Google Drive для загрузки/сохранения данных:

Запуск и создание файлов
Создание ноутбука и запуск сервиса Google Colab осуществляется из сервиса Google Drive:
В любой папке диска необходимо выполнить следующее действие:
Создать -> Еще -> Google Colaboratory
Перечень ноутбуков доступен в папке, в которой они были созданы.

Также возможно создание нестандартных конфигураций ноутбуков.
Ноутбук с 35Gb RAM при использовании TPU, или 25Gb при использовании CPU\GPU доступен по ссылке.
Основная рабочая зона
В основном меню ноутбука, в разделе Инструменты доступна раскладка горячих клавиш для работы с ячейками ноутбука. В Google Colab это сочетание отличается от сочетания в Jupyter Notebook.

Реализована возможность добавлять ячейки в графическом режиме:

Возможность изменения порядка ячеек в графическом режиме (перетаскивание) – отсутствует. Для этого в правом верхнем углу каждой ячейки предусмотрено меню:

В остальном, работа в Google Colab схожа с работой в локальном ноутбуке Jupyter.
Особенности
Поскольку Google Colab имеет 12GB памяти в графическом ускорителе, то его целесообразно использовать для ресурсоемких исследований и вычислений, например, для обучения нейронной сети. Инструмент подходит для командной работы.
8. PyCharm Community
Краткий обзор
PyCharm Community – бесплатная среда разработки для языка программирования Python. Интегрированная среда дает возможность анализа кода, его графический отладки, и т.д. PyCharm разработана компанией JetBrains на основе IntelliJ IDEA.

Левая панель инструмента содержит вкладки:
- Project.
- Commit.
- Pull Requests.
Вкладка Progects содержит структуру каталогов проекта, в т.ч. структуру сторонних библиотек, а также инструменты для работы с ними.
После фиксации изменений в проекте по нажатию пиктограммы в верхнем правом меню

открывается вкладка Comit, где требуется ввести сообщение к осуществляемому комиту:

Сообщения к комитам целесообразно стандартизировать в формальной логике, например, с применением соглашения Conventional Commits.

При наличии предложений на изменение кода в репозитории GitHub со стороны участников проекта, все они отображаются во вкладке Pull Requests.
Нижняя панель инструментов слева содержит вкладки:
- Git.
- TODO.
- Problems.
- Terminal.
- Python Packages.
- Python Console.
Наиболее востребованной вкладкой является Terminal, в ней выполняются команды проекта, например:

Команда представляет собой запуск pipeline технологии DVC, о которой можно прочитать на сайте разработчика.
Ссылка на сайт разработчика технологии (англ.)
Установка
Основным способом распространения инструмента является бинарная дистрибьюция.
Скачать дистрибутив можно по ссылке.
Запуск и создание файлов
Существует два основных способа начала проекта.
- Создание нового проекта. В основном меню:
File -> New Project. - Клонирование существующего проекта через систему контроля версий. В основном меню:
VCS -> Get from Version Control.
Основная рабочая зона
В проектах Data Science PyCharm позволяет осуществлять рефакторинг кода, полученного в результате завершения исследовательской стадии проекта с применением ноутбуков.
Фрагменты кода оформляются в виде классов или функций на языке программирования Python.

Зеленый символ в правом верхнем углу рабочего окна свидетельствует о том, что код написан с соблюдением стандарта написания кода PEP8.
Изучить стандарт можно по ссылке.
При наличии замечаний к коду, знак меняется на следующий (цифра указывает на количество замечаний):

Особенности
PyCharm Community целесообразно использовать при переходе от исследовательской стадии проекта в области науки о данных к стадии разработки готового решения, основанного на результатах испытаний. В стадии разработки на первый план выходит навык написания понятного и поддерживаемого кода, отвечающего определенным стандартам программирования.
9. JetBrains DataSpell
Краткий обзор
JetBrains DataSpell – интегрированная среда разработки от JetBrains, адаптированная под потребности специалистов в области науки о данных.

Левая панель инструмента содержит две основные вкладки:
- Workspace.
- Structure (описывает структуру заголовков инструмента).

Вкладка Workspace содержит структуру каталогов проекта, а также инструмент для подключения сервера Jupyter Notebook:

Доступны подключения к локальному серверу, либо к удаленному по URL.
Правая панель содержит важный инструмент, который называется DataExplorer. Он позволяет подключать различные системы управления базами данных (SQL/NoSQL), вроде Azure SQL Database, Apache Hive и др.

Нижняя панель содержит вкладки для работы с Git и консолью, аналогично PyCharm.
Установка
Дистрибутив DataSpell доступен по ссылке.
Запуск и создание файлов
После запуска инструмента из основного меню в диалоговом окне доступен выбор среды. По умолчанию указана Conda.

Основная рабочая зона
Двойное нажатие левой кнопкой мыши на файле ноутбука в левой панели Workspace открывает его непосредственно в основном окне редактора DataSpell.

В таком режиме работа с ячейками ноутбука происходит привычным образом – редактирование кода внутри ячейки и операции над самой ячейкой.
В режиме отладки, после установки точки останова (break point), под основной рабочей областью ноутбука появляется таблица с историей исполнения в ячейках, а также выводом всех переменных, которые содержатся в пространстве имен ноутбука.

Двойное нажатие левой кнопкой мыши на файле .csv в левой панели Workspace открывает его непосредственно в основном окне редактора, облегчая визуальное исследование исходных данных.

Особенности
DataSpell является инструментом для fullstack-проекта в области Data Science. Это обеспечивается за счет объединения возможностей работы над исследовательской стадией и стадией разработки в одном интерфейсе.
10. GitHub для Data Science
Проекты в области Data Science предполагают работу с ноутбуками в формате .ipynb на исследовательской стадии проекта. Этот формат файлов хотя и поддерживается GitHub (их можно открывать непосредственно из web-интерфейса репозитория), но попытки просмотра содержимого в половине случаев завершаются ошибкой, страницу просмотра приходится обновлять и пробовать открыть файл снова.
Для решения этой проблемы частой практикой является просмотр ноутбука в Google Colab:

Пример кода для встраивания ссылки на просмотр ноутбука в файл README.md в корневой директории репозитория:
Файлы .ipynb по сути являются структурированным текстом в формате JSON и отслеживать их изменения в процессе версионирования неудобно:

Рефакторинг кода и структурирование его в «питоновские» файлы с расширением .py и соблюдением стандарта PEP8 упрощают работу:

Хранение файлов с набором данных более 100 Mb в GitHub невозможно. Для решения задачи используется Git LFS. Эта технология обрабатывает большие файлы, сохраняя в репозитории ссылки, но не на сами файлы.
Чтобы обойти архитектуру Git, Git LFS создает файл-указатель, который действует как ссылка на хранящийся в другом месте файл. GitHub управляет этим файлом указателя в репозитории. Когда вы клонируете репозиторий, GitHub использует указатель, чтобы найти сам файл.
Подробнее о работе с большими файлами можно прочитать в документации GitHub (англ.)
Работу с большими файлами также поддерживает технология DVC (Data Version Control).