ipywidgets
ipywidget은 사용자가 Notebook 셀에서 매개 변수 값을 지정할 수 있게 해주는 시각적 요소입니다. ipywidget을 사용하여 Databricks Python Notebook을 대화형으로 만들 수 있습니다.
ipywidget 패키지에는 슬라이더, 텍스트 상자 및 확인란과 같은 양식 컨트롤뿐만 아니라 탭, 아코디언 및 그리드와 같은 레이아웃 컨트롤을 포함하여 30개가 넘는 컨트롤이 포함되어 있습니다. 이러한 요소를 사용하여 그래픽 사용자 인터페이스를 빌드하여 Notebook 코드와 인터페이스할 수 있습니다.
참고 항목
- 클러스터가 지원하는 ipywidgets 버전을 확인하려면 클러스터의 Databricks Runtime 버전에 대한 릴리스 정보를 참조하세요.
- 일부 ipywidgets는 Databricks Runtime 15.0에서 작동하지 않습니다.
- Databricks 위젯에 대한 자세한 내용은 Databricks 위젯을 참조하세요. Databricks 위젯 또는 ipywidget을 사용하는 경우에 대한 지침은 ipywidget 및 Databricks 위젯 사용에 대한 모범 사례를 참조하세요.
요구 사항
- ipywidgets는 Databricks Runtime 11.0에서 Databricks Runtime 12.2 LTS까지 미리 보기로 제공되며 일반적으로 Databricks Runtime 13.0 이상에서 사용할 수 있습니다. Unity 카탈로그 테이블에 대한 지원은 Databricks Runtime 12.2 LTS 이상에서 Unity 카탈로그 사용하도록 설정된 클러스터에서 사용할 수 있습니다.
- Databricks에서 ipywidgets를 사용하려면, 브라우저가
databricks-dev-cloudfront.dev.databricks.com
도메인에 액세스할 수 있어야만 합니다.
기본적으로 ipywidgets는 포트 6062를 사용합니다. Databricks Runtime 11.3 이상에서 Datadog와 같은 타사 통합과 충돌하는 경우 다음 Spark 구성을 사용하여 포트를 변경할 수 있습니다:
spark.databricks.driver.ipykernel.commChannelPort <port-number>
예시:
spark.databricks.driver.ipykernel.commChannelPort 1234
클러스터가 만들어질 때 Spark 구성을 설정해야 합니다.
사용
다음 코드는 3에서 10 사이의 값을 사용할 수 있는 슬라이더를 사용하여 히스토그램을 만듭니다. 위젯 값은 히스토그램의 계급구간 수를 결정합니다. 슬라이더를 움직이면 히스토그램이 즉시 업데이트됩니다. 이 작업을 시도하려면 ipywidgets 예제 Notebook을 참조하세요.
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 카탈로그 테이블에 대한 지원은 Unity 카탈로그 지원 클러스터에서 Databricks Runtime 12.1 이상에서 사용할 수 있습니다.
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)
ipywidget 예제 Notebook
다음 Notebook에서는 Notebook에서 ipywidgets를 사용하는 몇 가지 예를 보여 줍니다.
ipywidget 예제 Notebook
Notebook 예제: ipywidgets 고급 예제
다음 Notebook에서는 ipywidgets를 사용하여 대화형 맵을 만드는 보다 복잡한 예제를 보여줍니다.
고급 예제: ipywidget가 있는 맵
ipywidget 및 Databricks 위젯 사용을 위한 모범 사례
Python Notebook에 대화형 컨트롤을 추가하려면 ipywidget을 사용하는 것이 좋습니다. 다른 언어의 Notebook의 경우 Databricks 위젯을 사용합니다.
Databricks 위젯을 사용하여 Notebook 간에 매개 변수를 전달하고 매개 변수를 작업에 전달할 수 있습니다. ipywidget은 이러한 시나리오를 지원하지 않습니다.
Databricks에서 지원되는 타사 Jupyter 위젯은 무엇인가요?
Databricks는 ipyleaflet, bqplot 및 VegaFusion과 같은 타사 위젯에 대한 최선의 지원을 제공합니다. 그러나 일부 타사 위젯은 지원되지 않습니다. Azure Databricks Notebooks에서 테스트된 위젯 목록은 Azure Databricks 계정 팀에게 문의합니다.
제한 사항
자세한 내용은 알려진 제한 사항 Databricks Notebook을 참조하세요.