Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Transforms Python API

Transforms Python API는 입력 및 출력 명세, compute 함수와 실행 설정을 묶어 Pipeline을 구성합니다. 기본 Python 변환 저장소의 src/myproject/datasets/examples.py에서 transforms.api를 가져와 변환을 선언할 수 있습니다. 선언용 명세와 실행 중 주입되는 객체는 역할이 다릅니다.

최소 경량 변환

입력 표를 읽어 출력에 기록하는 가상 예시입니다. 두 경로를 실제 데이터셋으로 지정하고, meta.yml에 polars를 run 의존성으로 추가합니다.

from transforms.api import Input, Output, transform, LightweightInput, LightweightOutput


@transform.using(
    output_dataset=Output("/path/to/output/dataset"),
    input_dataset=Input("/path/to/input/dataset"),
)
def compute(input_dataset: LightweightInput, output_dataset: LightweightOutput) -> None:
    output_dataset.write_table(input_dataset.polars(lazy=True))

PySpark DataFrame 변환

PySpark DataFrame을 바로 반환하는 방식은 transform_df를 사용합니다. 다음 가상 입력에는 문자열 hair 열이 있습니다.

from transforms.api import transform_df, Input, Output


@transform_df(
    Output("/path/to/output/dataset"),
    hair_eye_color=Input("/path/to/input/dataset"),
)
def filter_hair_color(hair_eye_color):
    return hair_eye_color.filter(hair_eye_color.hair == "Brown")

실행 방식과 자료형

PySpark 변환은 Spark 입출력과 실행 맥락을 사용합니다. transform.using과 transform_polars는 Spark 없는 단일 노드 경로입니다. transform_pandas의 기본 Spark 경로는 계산 전후에 DataFrame을 변환하며 pandas로 가져올 데이터가 드라이버 메모리에 들어가야 합니다. DuckDB 관계를 표 출력으로 전달하는 경로는 Dataset 및 경량 출력의 지원 유형을 따릅니다.

주제별 계약은 등록과 실행 방식, 입출력 명세, 런타임 객체, 값 매개변수, 표와 원시 파일에서 확인할 수 있습니다.

함수와 데코레이터

API역할
configureSpark 변환의 실행 설정 변경
incremental입력, 출력 및 맥락을 증분 대응 객체로 구성
lightweight기존 경량 실행 데코레이터. 3.85.0부터 transform.using 경로 권장
transformcompute 함수와 이름별 매개변수로 변환 객체 구성. using으로 경량 선언 가능
transform_dfPySpark DataFrame 입출력 함수 등록
transform_pandaspandas DataFrame 입출력 함수 등록
transform_polarsPolars DataFrame 입출력 함수 등록

클래스

클래스역할
BooleanParam불리언 값의 ParameterSpec 입력 명세
Checkexpectation을 Data Health에 등록할 검사로 구성
ComputeBackendconfigure에서 사용할 SPARK/VELOX 백엔드 열거형
ContainerTransform경량 단일 노드 계산의 호출 가능한 실행 객체
ContainerTransformsConfigurationContainerTransform의 하위 호환 이름
Datasetfoundry.transforms 이름 공간에서 데이터셋 뷰의 기반 파일과 표를 다루는 클래스
FileStatus경로, 크기와 수정 시각의 namedtuple
FileSystemSpark 변환의 원시 데이터셋 파일 접근
FloatParam부동소수점 값의 입력 명세
FoundryDataSidecarFile경량 단일 노드의 원시 파일 객체
FoundryDataSidecarFileSystem경량 단일 노드의 파일시스템
FoundryInputParamFoundry 변환 입력 매개변수의 기본 계약
FoundryOutputParamFoundry 변환 출력 매개변수의 기본 계약
IncrementalLightweightInput증분 ContainerTransform의 런타임 입력
IncrementalLightweightOutput증분 ContainerTransform의 런타임 출력
IncrementalTableTransformInput가상 테이블 입력의 증분 계산과 Iceberg 변경 로그
IncrementalTransformContext증분 Spark 맥락
IncrementalTransformInput증분 Spark 입력
IncrementalTransformOutput증분 Spark 출력
Input단일 데이터셋 입력 명세
InputSet입력 명세 목록
IntegerParam정수 값의 입력 명세
LightweightContext경량 실행에 선택적으로 주입할 맥락
LightweightInput경량 실행의 입력 객체
LightweightInputParam경량 입력 매개변수 구현의 계약
LightweightOutput경량 실행의 출력 객체
LightweightOutputParam경량 출력 매개변수 구현의 계약
Markings입력 보안 표지의 전파 중단 명세
OrgMarkings출력에서 요구하지 않을 상속 조직의 명세
Output단일 데이터셋 출력 명세
OutputSet출력 명세 목록
Paramcompute 함수 매개변수의 기본 계약
ParamContext매개변수 instance 생성에 주입할 맥락
ParamValueInput매개변수 명세의 값 래퍼
Pipeline변환 묶음과 등록 및 재귀 탐색
StringParam문자열 값과 선택적인 허용값 집합
TableTransformInput가상 테이블의 런타임 입력
Transformcompute 함수와 입출력을 구성하는 호출 가능한 Spark 계산 단계
TransformContext일반 Spark 실행에 선택적으로 주입할 맥락
TransformInput일반 Spark 런타임 입력
TransformOutput일반 Spark 런타임 출력

예외

예외역할
LightweightException경량 호환성 검사의 기본 예외
LightweightNotImplementedError경량 환경의 미지원 기능
LightweightTypeError경량 호환성 타입 오류
LightweightValueError경량 호환성 값 오류