ipywidgets
ipywidgets são elementos visuais que permitem aos usuários especificar valores de parâmetros nas células Notebook . Você pode usar ipywidgets para tornar seu Databricks Python Notebook interativo.
O pacote ipywidgets inclui mais de 30 controles diferentes, incluindo controles de formulário como sliders, caixas de texto e caixas de seleção, bem como controles de disposição como tab, sanfonas e grades. Usando esses elementos, você pode criar interfaces gráficas com o usuário para interagir com o código Notebook .
Observação
Para determinar a versão de ipywidgets que seus clusters suportam, consulte as notas sobre a versão para a versão Databricks Runtime de seus clusters.
Alguns ipywidgets não funcionam no Databricks Runtime 15.0.
Para obter informações sobre os widgets do Databricks, consulte Widgets do Databricks. Para obter diretrizes sobre quando usar widgets Databricks ou ipywidgets, consulte as práticas recomendadas para usar ipywidgets e widgets Databricks.
Requisitos
ipywidgets estão disponíveis em versão prévia no Databricks Runtime 11.1 até o Databricks Runtime 12.2 LTS e geralmente estão disponíveis no Databricks Runtime 13.0 e acima. O suporte para tabelas Unity Catalog está disponível no Databricks Runtime 12.1 e acima em clusters habilitados Unity Catalog .
Para usar o ipywidgets na Databricks, seu navegador deve ser capaz de acessar o domínio
databricks-dev-cloudfront.dev.databricks.com
.
Em default, o ipywidgets ocupa a porta 6062. Com o Databricks Runtime 11.3 LTS e acima, se o senhor entrar em conflito com integrações de terceiros, como o Datadog, poderá alterar a porta usando a seguinte configuraçãoSpark:
spark.databricks.driver.ipykernel.commChannelPort <port-number>
Por exemplo:
spark.databricks.driver.ipykernel.commChannelPort 1234
A configuração do Spark deve ser definida quando os clusters são criados.
Uso
O código a seguir cria um histograma com um controle deslizante que pode assumir valores entre 3 e 10. O valor do widget determina o número de compartimentos no histograma. Conforme você move o controle deslizante, o histograma é atualizado imediatamente. Veja o Notebook de exemplo ipywidgets para experimentar.
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)
O código a seguir cria um controle deslizante inteiro que pode assumir valores entre 0 e 10. O valor default é 5. Para acessar o valor do controle deslizante em seu código, use int_slider.value
.
import ipywidgets as widgets
int_slider = widgets.IntSlider(max=10, value=5)
int_slider
O código a seguir carrega e exibe um dataframe de amostra de uma tabela no Unity Catalog. O suporte para tabelas Unity Catalog está disponível com Databricks Runtime 12.1e acima em clusters habilitados para Unity Catalog.
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)
Exemplo Notebook : ipywidgets
O Notebook a seguir mostra alguns exemplos de uso de ipywidgets no Notebook.
Exemplo Notebook : exemplo avançado de ipywidgets
O Notebook a seguir mostra um exemplo mais complexo usando ipywidgets para criar um mapa interativo.
Práticas recomendadas para usar ipywidgets e widgets Databricks
Para adicionar controles interativos ao Python Notebook, o Databricks recomenda o uso de ipywidgets. Para Notebook em outros idiomas, use widgets Databricks.
Você pode usar widgets do Databricks para passar parâmetros entre Notebook e para passar parâmetros para o Job; Os ipywidgets não suportam esses cenários.
Quais widgets Jupyter de terceiros têm suporte no Databricks?
Databricks fornece suporte de melhor esforço para widgets de terceiros, como ipyleaflet, bqplot e VegaFusion. No entanto, alguns widgets de terceiros não são suportados. Para obter uma lista dos widgets que foram testados no Databricks Notebook, entre em contato com a equipe da sua account do Databricks.
Limitações
Consulte Limitações conhecidas Databricks Notebook para obter mais informações.