범주별 행 수를 그리는 템플릿
Titanic 데이터의 Sex나 Pclass처럼 범주가 있는 열을 집계하고 막대 차트로 표시합니다. 먼저 동작하는 Python 변환을 만든 뒤 데이터셋과 열을 매개변수로 바꿉니다.
차트 변환
입력 alias titanic_dataset을 Spark dataframe으로 지정하고 Python 노드 이름을 bar_chart_of_row_counts로 정합니다. 환경에는 Matplotlib과 NumPy가 필요합니다.
@synchronous_node_execution은 Code Workbook이 제공하는 실행 직렬화 decorator입니다. 같은 Workbook에서 여러 Matplotlib 노드를 사용할 때 각 노드에 적용합니다.
@synchronous_node_execution
def bar_chart_of_row_counts(titanic_dataset):
import matplotlib.pyplot as plt
import numpy as np
from pyspark.sql import functions as F
categorical_column = "Sex"
total = (
titanic_dataset.groupBy(categorical_column)
.agg(F.count("*").alias("count"))
.orderBy("count")
)
local = total.toPandas()
positions = np.arange(len(local))
fig, ax = plt.subplots()
ax.barh(positions, local["count"])
ax.set_yticks(positions)
ax.set_yticklabels(local[categorical_column])
ax.set_xlabel("count")
ax.set_ylabel(categorical_column)
fig.tight_layout()
plt.show()
plt.close(fig)
return total
전체 승객 데이터를 Pandas로 가져오는 대신 Spark에서 집계한 작은 결과만 수집합니다. 반환한 집계 DataFrame은 데이터셋으로 저장할 수 있습니다.
차트 위의 View Image, Contents 또는 Visualizations 탭에서 전체 화면으로 볼 수 있습니다. 기본 PNG 대신 SVG를 원하면 그리기 전에 함수 안에서 set_output_image_type('svg')를 호출하거나 함수 위에 @output_image_type('svg')를 추가합니다. 두 기능 모두 Workbook 런타임이 제공하는 이미지 출력 설정입니다.
템플릿으로 변환
편집기 오른쪽 위 Actions > Create template을 선택합니다.
제목을 Bar Chart of Row Counts by Categorical Variable로 정하고 한 범주형 열의 행 수 막대 차트를 만든다는 설명을 입력합니다.
titanic_dataset 입력은 Dataset 매개변수로 자동 생성됩니다. 다른 입력에도 사용할 수 있도록 이름을 input_dataset으로 바꾸고 설명을 붙입니다. 코드의 함수 인자와 본문 참조 위치가 {{{input_dataset}}}으로 연결됩니다.
Add new parameter를 선택하고 categorical_column에 넣은 문자열 "Sex"를 강조합니다.
유형은 Column, Source Dataset은 input_dataset으로 정하고 매개변수 이름을 selected_column으로 바꿉니다. 열 이름을 한 변수에 모아 두었으므로 한 위치만 지정하면 됩니다. 같은 값을 다른 위치에서도 쓴다면 매개변수 인스턴스의 Add로 묶습니다.
기본 저장 여부와 접근
다른 애플리케이션에서 집계 결과를 쓸 것이므로 Save as dataset을 켭니다. 템플릿을 새로 적용할 때 기본적으로 저장 노드가 됩니다. 끄면 기본값은 저장하지 않는 변환입니다.
Create template을 선택하고 저장할 폴더를 고릅니다. 작성 중에는 개인 폴더에 두고 공유할 때 공용 폴더로 옮길 수 있습니다. 접근 권한이 있는 사용자만 발견하고 사용할 수 있으며 Data Catalog에 추가할 수도 있습니다.
새 입력에 적용
새 변환 화면에서 Browse all templates를 선택합니다.
이름, 설명과 태그로 검색하거나 Favorites, Recently used, Files를 탐색합니다. 템플릿을 선택하고 Select를 누릅니다.
그래프에 추가한 뒤 Click here to add dataset에서 실제 입력을 고릅니다. selected_column에서 범주형 열을 지정하고 Run으로 계산합니다. 차트 노드는 기본적으로 그림을 보여 주며, 오른쪽 클릭의 Edit > Show table view로 집계 표를 볼 수 있습니다.
템플릿 수정
Actions > Edit Template에서 코드를 바꿀 수 있습니다.
수정은 새 버전으로 저장되며 이미 사용 중인 모든 인스턴스에 자동 적용하지 않습니다. 각 인스턴스의 버전 갱신 안내에서 변경을 확인합니다.