Перейти к основному содержимому

Jupyter

Это руководство описывает, как интегрировать ваш кластер Selena с Jupyter, современной веб-средой интерактивной разработки для блокнотов, кода и данных.

Все это стало возможным благодаря JupySQL, который позволяет выполнять SQL и строить графики больших наборов данных в Jupyter с помощью магических команд %sql, %%sql и %sqlplot.

Вы можете использовать JupySQL поверх Jupyter для выполнения запросов к Selena.

После загрузки данных в кластер вы можете запрашивать и визуализировать их с помощью SQL-графиков.

Предварительные требования

Перед началом работы у вас должно быть установлено следующее программное обеспечение:

  • JupySQL: pip install jupysql
  • Jupyterlab: pip install jupyterlab
  • SKlearn Evaluation: pip install sklearn-evaluation
  • Python
  • pymysql: pip install pymysql

ПРИМЕЧАНИЕ

После выполнения указанных выше требований вы можете открыть Jupyter lab, просто вызвав jupyterlab - это откроет интерфейс блокнота. Если Jupyter lab уже запущен в блокноте, вы можете просто выполнить ячейку ниже, чтобы получить зависимости.

# Install required packages.
%pip install --quiet jupysql sklearn-evaluation pymysql

ПРИМЕЧАНИЕ

Возможно, потребуется перезапустить ядро для использования обновленных пакетов.

import pandas as pd
from sklearn_evaluation import plot

# Import JupySQL Jupyter extension to create SQL cells.
%load_ext sql
%config SqlMagic.autocommit=False

Вам необходимо убедиться, что ваш экземпляр Selena запущен и доступен для следующих этапов.

ПРИМЕЧАНИЕ

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

Подключение к Selena через JupySQL

В этом примере используется docker-экземпляр, что отражено в строке подключения.

Пользователь root используется для подключения к локальному экземпляру Selena, создания базы данных и проверки того, что данные действительно можно читать из таблицы и записывать в неё.

%sql mysql+pymysql://root:@localhost:9030

Создайте и используйте эту базу данных JupySQL:

%sql CREATE DATABASE jupysql;
%sql USE jupysql;

Создайте таблицу:

%%sql
CREATE TABLE tbl(c1 int, c2 int) distributed by hash(c1) properties ("replication_num" = "1");
INSERT INTO tbl VALUES (1, 10), (2, 20), (3, 30);
SELECT * FROM tbl;

Сохранение и загрузка запросов

Теперь после создания базы данных вы можете записать в неё некоторые примеры данных и запросить их.

JupySQL позволяет разбивать запросы на несколько ячеек, упрощая процесс создания больших запросов.

Вы можете писать сложные запросы, сохранять их и выполнять при необходимости, аналогично CTE в SQL.

# This is pending for the next JupySQL release.
%%sql --save initialize-table --no-execute
CREATE TABLE tbl(c1 int, c2 int) distributed by hash(c1) properties ("replication_num" = "1");
INSERT INTO tbl VALUES (1, 1), (2, 2), (3, 3);
SELECT * FROM tbl;

ПРИМЕЧАНИЕ

--save сохраняет запрос, а не данные.

Обратите внимание, что мы используем --with;, это извлечет ранее сохраненные запросы и добавит их в начало (используя CTE). Затем мы сохраняем запрос в track_fav.

Построение графиков непосредственно в Selena

JupySQL поставляется с несколькими графиками по умолчанию, позволяя визуализировать данные непосредственно в SQL.

Вы можете использовать столбчатую диаграмму для визуализации данных в вашей недавно созданной таблице:

top_artist = %sql SELECT * FROM tbl
top_artist.bar()

Теперь у вас есть новая столбчатая диаграмма без дополнительного кода. Вы можете выполнять SQL непосредственно из вашего блокнота через JupySQL (от ploomber). Это открывает множество возможностей вокруг Selena для специалистов по данным и инженеров. Если вы застряли или нуждаетесь в поддержке, пожалуйста, обратитесь к нам через Slack.