Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

configure: Spark 변환 실행 설정

transforms.api.configure는 Spark Transform의 실행 설정을 바꾸는 데코레이터입니다. Transform 객체를 감싸야 하므로 Python의 데코레이터 표기에서는 @transform보다 위에 둡니다. 경량 변환에는 적용하지 않습니다.

transforms.api.configure(
    profile=None, allowed_run_duration=None, run_as_user=False,
    backend=ComputeBackend.SPARK, checkpoint_outputs=None,
)
인자형식기본값과 동작
profilestr 또는 list[str]적용할 Spark 변환 프로파일. 기본값 None
allowed_run_durationdatetime.timedelta작업 허용 시간. 기본값 None, 분 단위 정밀도
run_as_userbool사용자 권한으로 실행할지 여부. 기본값 False
backendstr 또는 ComputeBackend기본값 SPARK. VELOX로 네이티브 가속 선택 가능
checkpoint_outputs출력 지정체크포인트 저장에 사용할 출력. 생략하면 모든 출력

허용 시간을 초과하면 인프라가 작업을 실패 처리하고 재시도할 수 있습니다. 데이터 크기나 형태에 따라 시간이 바뀔 수 있으므로 신중하게 설정합니다. 증분 변환은 스냅샷 실행에서 시간이 크게 달라질 수 있어 allowed_run_duration을 사용하지 않습니다.

run_as_user는 3.85.0부터 사용 중단 권고 상태입니다. 기존 설정에서 True이면 실행 사용자의 권한에 따라 같은 작업도 다르게 동작할 수 있습니다.

checkpoint_outputs는 특히 증분 데이터셋에 체크포인트를 기록하면 빌드가 실패할 수 있는 상황에서 유용합니다. 체크포인트 저장에 사용할 출력을 제한하는 설정이며, 기본값은 전체 출력입니다.

Spark 설정 예시

high-memory라는 프로파일이 정의된 가상 저장소의 예시입니다. 입력과 출력 경로를 실제 리소스에 맞게 지정합니다.

from transforms.api import Input, Output, configure, transform


@configure(profile=["high-memory"])
@transform(
    my_input=Input("/path/to/input/dataset"),
    my_output=Output("/path/to/output/dataset"),
)
def my_compute_function(my_input, my_output):
    my_output.write_dataframe(my_input.dataframe())

감싼 객체가 Transform이 아니면 TypeError가 발생합니다. 백엔드 열거형은 ComputeBackend를 확인합니다. 경량 변환의 리소스 설정은 with_resources 경로를 사용합니다.