Big Data Tools EAP 12: экспериментальная поддержка Python, поиск по ноутбукам в Zeppelin

Oksana Mandryka

Вышло очередное обновление EAP 12 для плагина под названием Big Data Tools, доступного для установки в IntelliJ IDEA Ultimate, PyCharm Professional и DataGrip. Можно установить его через страницу плагина или внутри IDE. Плагин позволяет работать с Zeppelin, загружать файлы в облачные хранилища и проводить мониторинг кластеров Hadoop и Spark.

В этом релизе мы добавили экспериментальную поддержку Python и поиск по ноутбукам Zeppelin. Если вы страдали от каких-то багов, их тоже починено множество. Давайте поговорим об этих изменениях более подробно.

Big Data Tools logo

Экспериментальная поддержка Python в Zeppelin

Поддержку Python хотелось добавить давно. Несмотря на то, что PySpark в Zeppelin сейчас на волне хайпа, все что предоставляет нам веб-интерфейс Zeppelin — простейшее автодополнение, в котором содержится какой-то наполовину случайный набор переменных и функций. Вряд ли это можно ставить в вину Zeppelin, он никогда не обещал нам умного анализа кода. В IDE хочется видеть что-то намного большее.

Добавить целый новый язык — звучит как очень сложная задача. К счастью, в наших IDE уже есть отличная поддержка Python: либо в PyCharm, либо в Python-плагине для IntelliJ IDEA. Нам нужно было взять эту готовую функциональность и интегрировать внутрь Zeppelin. Вместе с этим возникает много нюансов, специфичных для Zeppelin: как нам проанализировать список зависимостей, как найти правильную версию Python и тому подобное.

Python code example

Начиная с EAP 12, код на Python нормально подсвечивается в нашем редакторе ноутбуков Zeppelin, отображаются грубые синтаксические ошибки. Можно перейти на определение переменной или функции, если они объявлены внутри ноутбука. Можно сделать привычные рефакторинги вроде rename или change signature. Работают Zeppelin-специфичные таблицы и графики — в конце концов, зачастую ради них люди и используют Zeppelin.

refactoring example

Конечно, многие вещи еще предстоит сделать. Например, очень хотелось бы видеть умное автодополнение по функциям Spark API и другому внешнему коду. Сейчас мы нормально автодополняем только то, что написано внутри ноутбука. У нас есть хорошие идеи, как это реализовать в следующих релизах. Иначе говоря, не надо ждать какого-то чуда: теперь у вас есть полнофункциональный редактор Python, но это все. Поддержка Python получилась довольно экспериментальной, но, как говорится, путь в тысячу ли начинается с первого шага. А еще, даже имеющейся функциональности может оказаться достаточно, чтобы писать код в вашей любимой IDE и не переключаться на веб-интерфейс Zeppelin.

Смешиваем Scala и Python

Иногда в одном и том же ноутбуке вам хочется одновременно использовать и Python, и Scala. Например, это бывает полезно из соображений производительности в вычислительных задачах.

Смешивать разные языки вполне возможно. Но не забывайте, что для полноценной поддержки Scala вам понадобится IntelliJ IDEA с плагинами Scala и Python. В PyCharm этот Scala-код хоть и будет выполняться, но его поддержка в редакторе останется на уровне plain text.

Scala code example

Поиск по ноутбукам Zeppelin

У нас всегда была возможность найти, в каком же файле на диске находится нужный нам текст (например, с помощью Find in Path, Ctrl+Shift+F). Но этот стандартный интерфейс поиска не работает с ноутбуками, ведь они — не файлы!

Начиная с EAP 12, мы добавили отдельную панель поиска по ноутбукам. Откройте панель Big Data Tools, выделите какое-нибудь из подключений к Zeppelin и нажмите на кнопку с изображением лупы (или используйте сочетание клавиш Ctrl+F на клавиатуре). В результате вы попадете в окно под названием «Find in Zeppelin Connections». Активация одного из результатов поиска приведет к открытию этого ноутбука и переходу на нужный параграф.

Search dialog example

Похожий поиск есть и в веб-интерфейсе Zeppelin. Для получения результатов поиска мы используем стандартный HTTP API, поэтому результаты должны совпадать с тем, что вы видите в интерфейсе Zeppeliln по аналогичному поисковому запросу. Если вы раньше пользовались веб-интерфейсом и привыкли к поиску по ноутбукам, теперь он имеется и в Big Data Tools.

Функция небольшая, но очень полезная. Непонятно, как мы без нее жили раньше.

Исправления ошибок

Плагин Big Data Tools активно развивается, и при бурном росте неизбежны некоторые проблемы. В этом релизе мы провели много работы над правильной работой с удаленными хранилищами, отображением графиков и параграфов, переработали часть интерефейсов (например, SSH-туннели). Переработаны кое-какие системные вещи (например, несколько проектов теперь используют общее подключение к Zeppelin), ряд ошибок в неожиданных местах. В целом, теперь пользоваться плагином намного приятней.

Если вам интересен обзор основных улучшений, то их можно найти в разделе «What’s New» на странице плагина. Если вы ищете какую-то конкретную проблему, вам может подойти полный отчет из YouTrack.

Спасибо, что пользуетесь нашим плагином! Напоминаю, что установить свежую версию можно либо в браузере, на странице плагина, или внутри IDE по названию «Big Data Tools». На странице плагина можно оставлять ваши отзывы и предложения (которые мы всегда читаем), и ставить оценки в виде звездочек.

Документация и социальные сети

Ну и наконец, если вам нужно разобраться функциональностью Big Data Tools, у нас есть подробная документация в вариантах для IntelliJ IDEA и PyCharm. Если хочется задать вопрос, можно сделать это в комментариях или перейти в наш Twitter.

Надеемся, что все эти улучшения окажутся полезными, позволят вам делать более интересыне вещи, и более приятным способом.

Ваша команда Big Data Tools
The Drive to Develop

Оригинал статьи опубликован на habr.com:
https://habr.com/ru/company/JetBrains/blog/533370/