Поделиться через


ipywidgets

Ipywidgets — это визуальные элементы, которые позволяют пользователям указывать значения параметров для ячеек записной книжки. С помощью ipywidgets вы можете сделать хаписные книжки Databricks Python интерактивными.

Пакет ipywidgets включает более 30 разных элементов управления, включая элементы управления формами, например ползунки, текстовые поля и флажки, а также элементы управления макетом, например вкладки, аккордеоны и сетки. С помощью этих элементов можно создавать графические пользовательские интерфейсы для взаимодействия с кодом записной книжки.

Примечание.

Требования

  • ipywidget доступны в предварительной версии в Databricks Runtime 11.0 через Databricks Runtime 12.2 LTS и общедоступны в Databricks Runtime 13.0 и выше. Поддержка таблиц каталога Unity доступна в Databricks Runtime 12.2 LTS и более поздних версиях в кластерах с поддержкой каталога Unity.
  • Чтобы использовать ipywidgets в Databricks, браузер должен иметь доступ к домену databricks-dev-cloudfront.dev.databricks.com .

По умолчанию ipywidget занимает порт 6062. При использовании Databricks Runtime 11.3 LTS и более поздних версий при возникновении конфликтов с сторонними интеграциями, такими как Datadog, можно изменить порт с помощью следующей конфигурации Spark:

spark.databricks.driver.ipykernel.commChannelPort <port-number>

Например:

spark.databricks.driver.ipykernel.commChannelPort 1234

При создании кластера необходимо задать конфигурацию Spark.

Использование

Следующий код создает гистограмму с ползунком, который может принимать значения от 3 до 10. Это значение в мини-приложении определяет количество ячеек в гистограмме. При перемещении ползунка гистограмма немедленно обновляется. Попробуйте эту возможность в работе на примере записной книжки ipywidgets.

import ipywidgets as widgets
from ipywidgets import interact

# Load a dataset
sparkDF = spark.read.csv("/databricks-datasets/bikeSharing/data-001/day.csv", header="true", inferSchema="true")

# In this code, `(bins=(3, 10)` defines an integer slider widget that allows values between 3 and 10.
@interact(bins=(3, 10))
def plot_histogram(bins):
  pdf = sparkDF.toPandas()
  pdf.hist(column='temp', bins=bins)

Следующий код создает ползунок, который может принимать целочисленные значения от 0 до 10. Значение по умолчанию равно 5. Чтобы получить значение ползунка в коде, используйте int_slider.value.

import ipywidgets as widgets

int_slider = widgets.IntSlider(max=10, value=5)
int_slider

Следующий код загружает и отображает пример кадра данных из таблицы в каталоге Unity. Поддержка таблиц каталога Unity доступна в кластерах с поддержкой Databricks Runtime 12.1 и выше в кластерах с поддержкой каталога Unity.

import ipywidgets as widgets

# Create button widget. Clicking this button loads a sampled dataframe from UC table.
button = widgets.Button(description="Load dataframe sample")

# Output widget to display the loaded dataframe
output = widgets.Output()

def load_sample_df(table_name):
  return spark.sql(f"SELECT * FROM {table_name} LIMIT 1000")

def on_button_clicked(_):
    with output:
      output.clear_output()
      df = load_sample_df('<catalog>.<schema>.<table>')
      print(df.toPandas())

# Register the button's callback function to query UC and display results to the output widget
button.on_click(on_button_clicked)

display(button, output)

Пример записной книжки: ipywidgets

В следующей записной книжке показаны некоторые примеры использования ipywidget в записных книжках.

Пример записной книжки ipywidgets

Получить записную книжку

Пример записной книжки: расширенный пример ipywidgets

В следующей записной книжке показан более сложный пример использования ipywidgets для создания интерактивной карты.

Расширенный пример: карты с ipywidgets

Получить записную книжку

Рекомендации по использованию мини-приложений ipywidgets и Databricks

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

Мини-приложения Databricks можно использовать для передачи параметров между записными книжками и передачи параметров заданиям, тогда как Ipywidgets не поддерживают такие сценарии.

Сторонние мини-приложения Jupyter, поддерживаемые в Databricks

Databricks обеспечивает оптимальную поддержку сторонних мини-приложений, таких как ipyleaflet, bqplot и VegaFusion. Однако некоторые сторонние мини-приложения не поддерживаются. Список мини-приложений, которые были протестированы в записных книжках Azure Databricks, обратитесь к группе учетной записи Azure Databricks.

Ограничения

Дополнительные сведения см. в разделе "Известные ограничения Databricks notebook".