ipywidgets

Os ipywidgets são elementos visuais que permitem aos utilizadores especificar valores de parâmetros em células de caderno. Pode usar o ipywidgets para tornar os seus cadernos Python Databricks interativos.

O pacote ipywidgets inclui mais de 30 controlos diferentes, incluindo controlos de formulário, como controlos de deslize, caixas de texto e caixas de verificação, bem como controlos de disposição, como separadores, acordeões e grelhas. Com estes elementos, pode criar interfaces gráficas para interagir com o código do bloco de notas.

Nota

Requisitos

  • ipywidgets estão disponíveis em versão de pré-visualização no Databricks Runtime 11.0 até ao Databricks Runtime 12.2 LTS e estão geralmente disponíveis no Databricks Runtime 13.0 e superior. O suporte para tabelas do Catálogo Unity está disponível no Databricks Runtime 12.2 LTS e superiores em clusters habilitados pelo Unity Catalog.
  • Para usar ipywidgets no Databricks, seu navegador deve ser capaz de acessar o databricks-dev-cloudfront.dev.databricks.com domínio.

Por padrão, ipywidgets ocupa a porta 6062. Com o Databricks Runtime 11.3 LTS e superior, se você entrar em conflito com integrações de terceiros, como o Datadog, poderá alterar a porta usando a seguinte configuração do Spark:

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

Por exemplo:

spark.databricks.driver.ipykernel.commChannelPort 1234

A configuração do Spark deve ser definida quando o cluster é criado.

Utilização

O código seguinte cria um histograma com um controlo deslizante que pode assumir valores entre 3 e 10. O valor do widget determina o número de compartimentos no histograma. À medida que você move o controle deslizante, o histograma é atualizado imediatamente. Veja o notebook de exemplo do ipywidgets para experimentar isso.

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 seguinte cria uma barra deslizante de tipo inteiro que pode assumir valores entre 0 e 10. O valor padrão é 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 seguinte carrega e apresenta um dataframe de exemplo a partir de uma tabela no Unity Catalog. O suporte para tabelas do Catálogo Unity está disponível com Databricks Runtime 12.1 e superiores em clusters habilitados pelo 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 de caderno: ipywidgets

O bloco de anotações a seguir mostra alguns exemplos de uso de ipywidgets em blocos de anotações.

IPywidgets Exemplo de Notebook

Obter caderno

Exemplo de notebook: exemplo avançado de ipywidgets

O bloco de anotações a seguir mostra um exemplo mais complexo usando ipywidgets para criar um mapa interativo.

Exemplo avançado: mapas com ipywidgets

Obter caderno

Práticas recomendadas para usar ipywidgets e widgets Databricks

Para adicionar controlos interativos aos cadernos Python, o Databricks recomenda o uso do ipywidgets. Para cadernos em outros idiomas, use Widgets Databricks.

Podes usar widgets do Databricks para passar parâmetros entre notebooks e para passar parâmetros para jobs; O ipywidgets não suporta estes cenários.

Quais widgets Jupyter de terceiros são suportados no Databricks?

O 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 nos notebooks do Azure Databricks, contacte a sua equipa de suporte da Azure Databricks.

Limitações

Consulte Limitações conhecidas dos cadernos Databricks para mais informações.