Partilhar via


ipywidgets

ipywidgets são elementos visuais que permitem aos utilizadores especificar parâmetro values nas células do notebook. Pode utilizar ipywidgets para tornar os seus blocos de notas Python do 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 esquema, como separadores, listas expansíveis 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 visualização no Databricks Runtime 11.0 através do Databricks Runtime 12.2 LTS, e estão geralmente disponíveis no Databricks Runtime 13.0 e superior. O suporte para Unity Catalogtables está disponível no Databricks Runtime 12.2 LTS e superior em clusters habilitados para 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 set quando o cluster é criado.

Utilização

O código a seguir cria um histograma com um controle deslizante que pode assumir values 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 bloco de anotações de exemplo 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 a seguir cria um slider de inteiros que pode assumir values, num intervalo de 0 a 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 a seguir carrega e exibe um dataframe de exemplo de um table no Unity Catalog. O suporte para Unity Catalogtables está disponível com Databricks Runtime 12.1 e superior 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 de notebook: ipywidgets

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

IPywidgets Exemplo de Notebook

Get portátil

Exemplo de notebook: exemplo avançado 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

Get caderno

Práticas recomendadas para usar ipywidgets e widgets Databricks

Para adicionar controles interativos a blocos de anotações Python, o Databricks recomenda o uso de ipywidgets. Para blocos de anotações em outros idiomas, use widgets Databricks.

Você pode usar widgets Databricks para passar parameters entre blocos de anotações e passar parameters para trabalhos; ipywidgets não suportam esses 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 list dos widgets que foram testados nos blocos de anotações do Azure Databricks, entre em contato com sua equipe de conta do Azure Databricks.

Limitações

Consulte Limitações conhecidas dos blocos de anotações Databricks para obter mais informações.