ipywidgets
Ipywidgets — это визуальные элементы, которые позволяют пользователям указывать значения параметров для ячеек записной книжки. С помощью ipywidgets вы можете сделать хаписные книжки Databricks Python интерактивными.
Пакет ipywidgets включает более 30 разных элементов управления, включая элементы управления формами, например ползунки, текстовые поля и флажки, а также элементы управления макетом, например вкладки, аккордеоны и сетки. С помощью этих элементов можно создавать графические пользовательские интерфейсы для взаимодействия с кодом записной книжки.
Примечание.
- Чтобы определить версию ipywidget, которую поддерживает кластер, обратитесь к заметкам о выпуске для версии среды выполнения Databricks в кластере.
- Некоторые ipywidget не работают в Databricks Runtime 15.0.
- Сведения о мини-приложениях Databricks см. в статье Мини-приложения. Рекомендации по использованию мини-приложений Databricks или ipywidgets см. в рекомендациях по использованию мини-приложений ipywidgets и мини-приложений Databricks.
Требования
- 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".