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,
)
| 인자 | 형식 | 기본값과 동작 |
|---|---|---|
profile | str 또는 list[str] | 적용할 Spark 변환 프로파일. 기본값 None |
allowed_run_duration | datetime.timedelta | 작업 허용 시간. 기본값 None, 분 단위 정밀도 |
run_as_user | bool | 사용자 권한으로 실행할지 여부. 기본값 False |
backend | str 또는 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 경로를 사용합니다.