Aracılığıyla paylaş


ipywidgets

ipywidgets , kullanıcıların not defteri hücrelerinde parametre değerlerini belirtmesine olanak sağlayan görsel öğelerdir. Databricks Python not defterlerinizi etkileşimli hale getirmek için ipywidgets kullanabilirsiniz.

Ipywidgets paketi kaydırıcılar, metin kutuları ve onay kutuları gibi form denetimlerinin yanı sıra sekmeler, akordeonlar ve kılavuzlar gibi düzen denetimleri de dahil olmak üzere 30'un üzerinde farklı denetim içerir. Bu öğeleri kullanarak, not defteri kodunuzla arabirim oluşturmak için grafik kullanıcı arabirimleri oluşturabilirsiniz.

Not

Gereksinimler

  • ipywidget'ler Databricks Runtime 11.0 ile Databricks Runtime 12.2 LTS arasında önizleme aşamasında sağlanır ve genellikle Databricks Runtime 13.0 ve üzeri sürümlerde kullanılabilir. Unity Kataloğu tabloları için destek, Unity Kataloğu etkinleştirilmiş kümelerde Databricks Runtime 12.2 LTS ve üzerinde kullanılabilir.
  • Databricks'te ipywidgets kullanmak için tarayıcınızın etki alanına erişebilmesi databricks-dev-cloudfront.dev.databricks.com gerekir.

Varsayılan olarak, ipywidgets 6062 numaralı bağlantı noktasını kaplar. Databricks Runtime 11.3 LTS ve üzeri ile Datadog gibi üçüncü taraf tümleştirmelerle çakışmalarla karşılaşırsanız aşağıdaki Spark yapılandırmasını kullanarak bağlantı noktasını değiştirebilirsiniz:

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

Örneğin:

spark.databricks.driver.ipykernel.commChannelPort 1234

Küme oluşturulduğunda Spark yapılandırması ayarlanmalıdır.

Kullanım

Aşağıdaki kod, 3 ile 10 arasındaki değerleri alabilen kaydırıcıya sahip bir histogram oluşturur. Pencere öğesinin değeri histogramdaki bölme sayısını belirler. Kaydırıcıyı hareket ettirdikçe histogram hemen güncelleştirilir. Bunu denemek için ipywidgets örnek not defterine bakın.

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)

Aşağıdaki kod, 0 ile 10 arasındaki değerleri alabilen bir tamsayı kaydırıcısı oluşturur. Varsayılan değer 5'tir. Kodunuzda kaydırıcının değerine erişmek için kullanın int_slider.value.

import ipywidgets as widgets

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

Aşağıdaki kod Unity Kataloğu'ndaki bir tablodan örnek veri çerçevesini yükler ve görüntüler. Unity Kataloğu tabloları için destek, Unity Kataloğu etkin kümelerde Databricks Runtime 12.1 ve üzeri ile kullanılabilir.

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)

Not defteri örneği: ipywidgets

Aşağıdaki not defterinde, not defterlerinde ipywidget kullanma örnekleri gösterilmektedir.

ipywidgets örnek not defteri

Not defterini alma

Not defteri örneği: ipywidgets gelişmiş örneği

Aşağıdaki not defterinde etkileşimli harita oluşturmak için ipywidgets kullanan daha karmaşık bir örnek gösterilmektedir.

Gelişmiş örnek: ipywidgets ile eşlemeler

Not defterini alma

ipywidgets ve Databricks pencere öğelerini kullanmaya yönelik en iyi yöntemler

Databricks, Python not defterlerine etkileşimli denetimler eklemek için ipywidgets kullanılmasını önerir. Diğer dillerdeki not defterleri için Databricks pencere öğelerini kullanın.

Databricks pencere öğelerini kullanarak not defterleri arasında parametre geçirebilir ve parametreleri işlere geçirebilirsiniz; ipywidgets bu senaryoları desteklemez.

Databricks'te hangi üçüncü taraf Jupyter pencere öğeleri desteklenir?

Databricks ipyleaflet, bqplot ve VegaFusion gibi üçüncü taraf pencere öğeleri için en iyi desteği sağlar. Ancak bazı üçüncü taraf pencere öğeleri desteklenmez. Azure Databricks not defterlerinde test edilmiş pencere öğelerinin listesi için Azure Databricks hesap ekibinize başvurun.

Sınırlamalar

  • ipywidgets kullanan bir not defteri, çalışan bir kümeye eklenmelidir.
  • Pencere öğesi durumları not defteri oturumlarında korunmaz. Not defterini bir kümeye her eklediğinizde bunları işlemek için pencere öğesi hücrelerini yeniden çalıştırmanız gerekir.
  • Parola ve Denetleyici ipywidget'leri desteklenmez.
  • LaTeX ifadelerine sahip HTMLMath ve Label pencere öğeleri doğru işlenmiyor. (Örneğin, widgets.Label(value=r'$$\frac{x+1}{x-1}$$') doğru şekilde işlenmez.)
  • Not defteri koyu moddaysa, özellikle renkli pencere öğelerinde pencere öğeleri düzgün işlenmeyebilir.
  • Pencere öğesi çıkışları not defteri pano görünümlerinde kullanılamaz.
  • Ipywidget için ileti yükü boyutu üst sınırı 5 MB'tır. Görüntüleri veya büyük metin verilerini kullanan pencere öğeleri düzgün işlenmeyebilir.