Открытый исходный код Netflix Polynote: новый многоязычный блокнот с первоклассной поддержкой Scala, интеграцией Apache Spark, многоязычной совместимостью
Заявление об ограничении ответственности. Взгляды и мнения, выраженные в этой статье, принадлежат автору и не обязательно отражают официальную политику или позицию нынешнего или предыдущего работодателя, организации, комитета, другой группы или отдельного лица. Анализ, выполненный в этой статье, основан на ограниченной и устаревшей информации из открытых источников. Предположения, сделанные в ходе анализа, не отражают позицию любого предыдущего или текущего работодателя.
Требования
- Работает только с Linux и MacOS. (Попрощайтесь с Windows)
- Поддержка Spark и Python.
Оглавление
- Запустите Polynote через виртуальную машину Azure Linux.
- Запустите Polynote через Docker Image.
Обзор
За последние несколько дней было объявлено об открытии исходного кода Netflix Polynote, внутренней среде IDE с первоклассной поддержкой Scala, интеграцией Apache Spark, многоязычной совместимостью, включая Scala, Python и SQL, автозаполнение по мере ввода, и многое другое, была наиболее обсуждаемой темой в сообществе специалистов по науке о данных и машинному обучению. Считается, что IDE предоставляет большой потенциал для решения аналогичных задач за пределами Netflix. (Открытый исходный код Polynote: многоязычный блокнот в стиле IDE, Технологический блог Netflix, 2019). С сегодняшнего дня он находится в свободном доступе на Polynote.org и GitHub. (Открытый исходный код Netflix Polynote для упрощения процессов обработки данных и машинного обучения, Кайл Виггерс, VentureBeat, 2019).
Давайте следовать руководству по установке, представленному на веб-сайте Polynote:
Polynote состоит из серверного приложения на основе JVM, которое обслуживает веб-клиент. Чтобы попробовать его локально, найдите последний выпуск на странице выпусков.
Запуск Polynote через виртуальную машину Azure Linux
Поскольку я являюсь пользователем Windows, я хотел бы создать виртуальную машину Linux на портале Azure и попробовать там Polynote. Вы можете следовать руководству Microsoft или моему руководству по Medium ниже:
Я получаю доступ к своей виртуальной машине через Putty.
После запуска сервера перейдите в браузере к http://localhost:8192
Запустите Polynote через образ Docker
Благодарим greglinscheid, который опубликовал неофициальный образ Docker для Polynote, который помогает создать репозиторий со всем уже настроенным. Я не буду вдаваться в подробности того, как установить докер в Windows / Mac / Linux, но вы можете обратиться к руководствам по установке по следующей ссылке:
Если у вас уже установлен Docker на вашем локальном компьютере, все готово. Давайте запустим образ докера, который упаковал Грег Линшайд.
Как и в предыдущем методе, мой сервер работает на http://localhost:8192
Затем я немного поигрался с простым синтаксисом Python и Scala:
Polynote также поддерживает диаграммы Vega. Вот пример линейного графика:
{
"$schema": "https://vega.github.io/schema/vega/v5.json",
"width": 500,
"height": 200,
"padding": 5,
"signals": [
{
"name": "interpolate",
"value": "linear",
"bind": {
"input": "select",
"options": [
"basis",
"cardinal",
"catmull-rom",
"linear",
"monotone",
"natural",
"step",
"step-after",
"step-before"
]
}
}
],
"data": [
{
"name": "table",
"values": [
{"x": 0, "y": 28, "c":0}, {"x": 0, "y": 20, "c":1},
{"x": 1, "y": 43, "c":0}, {"x": 1, "y": 35, "c":1},
{"x": 2, "y": 81, "c":0}, {"x": 2, "y": 10, "c":1},
{"x": 3, "y": 19, "c":0}, {"x": 3, "y": 15, "c":1},
{"x": 4, "y": 52, "c":0}, {"x": 4, "y": 48, "c":1},
{"x": 5, "y": 24, "c":0}, {"x": 5, "y": 28, "c":1},
{"x": 6, "y": 87, "c":0}, {"x": 6, "y": 66, "c":1},
{"x": 7, "y": 17, "c":0}, {"x": 7, "y": 27, "c":1},
{"x": 8, "y": 68, "c":0}, {"x": 8, "y": 16, "c":1},
{"x": 9, "y": 49, "c":0}, {"x": 9, "y": 25, "c":1}
]
}
],
"scales": [
{
"name": "x",
"type": "point",
"range": "width",
"domain": {"data": "table", "field": "x"}
},
{
"name": "y",
"type": "linear",
"range": "height",
"nice": true,
"zero": true,
"domain": {"data": "table", "field": "y"}
},
{
"name": "color",
"type": "ordinal",
"range": "category",
"domain": {"data": "table", "field": "c"}
}
],
"axes": [
{"orient": "bottom", "scale": "x"},
{"orient": "left", "scale": "y"}
],
"marks": [
{
"type": "group",
"from": {
"facet": {
"name": "series",
"data": "table",
"groupby": "c"
}
},
"marks": [
{
"type": "line",
"from": {"data": "series"},
"encode": {
"enter": {
"x": {"scale": "x", "field": "x"},
"y": {"scale": "y", "field": "y"},
"stroke": {"scale": "color", "field": "c"},
"strokeWidth": {"value": 2}
},
"update": {
"interpolate": {"signal": "interpolate"},
"fillOpacity": {"value": 1}
},
"hover": {
"fillOpacity": {"value": 0.5}
}
}
}
]
}
]
}
Поскольку IDE поддерживает только Linux и MacOS, настройки настолько незнакомы пользователям Windows. Проблема с SQL все еще сохраняется и требует дальнейшей настройки. Мне нравится тот факт, что они могут поддерживать Scala и Python с помощью мощного пакета визуализации, такого как Vega. Это идеально подходит для тех, кто хочет запачкать руки со Scala (без дополнительных затрат).
Рейтинг Кайла: ✩✩✩✩ (4/5)