Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Titanic 데이터로 Workbook 시작하기

예제 CSV는 Titanic 승객의 이름, 나이, 성별과 생존 여부 등을 포함한 공개 데이터입니다. 이를 개인 프로젝트에 올리고 여성 생존자를 고른 뒤 나이 통계를 계산합니다.

데이터와 Workbook

  1. CSV 파일을 내려받습니다.
  2. Foundry의 개인 프로젝트 안에 Code Workbook Tutorial 폴더를 만듭니다.
  3. CSV를 업로드하고 데이터셋 이름을 titanic_dataset으로 정합니다.
  4. 프로젝트의 New > Code Workbook으로 새 Workbook을 만듭니다.
  5. Import Dataset에서 titanic_dataset을 검색합니다. 예시 위치는 개인 프로젝트의 /user/Code Workbook Tutorial/titanic_dataset입니다. 자신의 실제 업로드 위치를 선택하고 Select를 누릅니다.

Python 변환 추가

가져온 노드에 마우스를 올리고 +에서 Python을 선택합니다.

입력과 연결된 코드 노드가 생기면 Logic 패널 위의 이름을 titanic_filtered로 정합니다. 이 이름은 코드가 입력과 출력을 참조하는 alias입니다.

새 변환은 기본적으로 결과를 Foundry 데이터셋에 저장하지 않습니다. 밖에서도 사용할 결과이면 Save as dataset을 켭니다. 저장하는 변환에는 코드용 alias와 실제 Foundry 데이터셋 이름이 각각 있습니다.

Pandas 입력과 필터

Logic의 Inputs 탭을 열고 입력 titanic_dataset의 Input Type을 Spark dataframe에서 Pandas dataframe으로 바꿉니다. 이 선택은 해당 변환이 받는 객체 유형을 정합니다.

다음 함수를 노드의 코드로 입력합니다.

def titanic_filtered(titanic_dataset):
    survivors = titanic_dataset["Survived"] == 1
    women = titanic_dataset["Sex"] == "female"
    return titanic_dataset.loc[survivors & women].copy()

반환값은 여성 생존자만 포함한 Pandas DataFrame입니다. 입력 alias가 함수 인자 이름과 같아야 Workbook이 해당 데이터를 전달합니다.

콘솔에서 나이 계산

오른쪽 콘솔에서 Python을 선택합니다.

콘솔 아래 Variables에는 콘솔에서 사용할 각 노드의 입력 유형이 있습니다. 변환 함수에 지정한 입력 유형과 별도로 이 설정을 확인합니다.

titanic_filtered를 Pandas dataframe으로 사용하면 다음과 같이 최대 나이를 구합니다.

titanic_filtered["Age"].max()

같은 결과를 PySpark로 살펴보려면 콘솔의 titanic_filtered 유형을 Spark dataframe으로 바꾼 뒤 실행합니다.

from pyspark.sql import functions as F

titanic_filtered.select(F.max("Age").alias("max_age")).show()

SQL 콘솔에서도 같은 alias의 표를 조회할 수 있습니다.

SELECT max(Age) AS max_age
FROM titanic_filtered

코드 노드의 선택 영역은 macOS의 Cmd+Shift+Enter 또는 Windows의 Ctrl+Shift+Enter로 콘솔에 보낼 수 있습니다. 콘솔에서 DataFrame을 반환하는 명령은 + Add to graph로 반복 실행할 변환으로 옮길 수 있습니다.