Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

TransformOutput: Spark 실행 출력

transforms.api.TransformOutput은 Transform의 compute 함수에 런타임 출력으로 주입됩니다. Output은 이 객체를 생성할 선언용 명세입니다. 증분 실행에서는 IncrementalTransformOutput이 읽기 모드와 쓰기 의미를 확장합니다.

transforms.api.TransformOutput(
    rid, branch, txrid, dfreader, dfwriter, fsbuilder, mode="replace",
)

메타데이터 속성

속성형식의미
batch_incremental_configurationBatchIncrementalConfiguration배치로 읽는 증분 입력의 설정
branchstr데이터셋 브랜치
column_descriptionsdict[str, str]열별 설명
column_typeclassesdict[str, str]열별 typeclass 메타데이터
start_transaction_ridstr읽기 범위의 시작 트랜잭션 RID
end_transaction_ridstr읽기 범위의 끝 트랜잭션 RID
pathstrCompass 경로
ridstr데이터셋 RID

읽기, 파일시스템과 필드 복사

메서드동작
dataframe()데이터셋 전체 뷰의 pyspark.sql.DataFrame 반환
pandas()데이터셋 전체 뷰의 pandas.DataFrame 반환
filesystem()FoundryFS에 기록할 FileSystem 구성
from_transform_output(instance, delegate)클래스 메서드. delegate TransformOutput의 값으로 instance의 필드 설정

set_mode(mode)

문자열 mode로 쓰기 모드를 바꿉니다. replace는 데이터셋을 대체하고, modify는 데이터를 추가하며, append는 데이터를 추가하되 기존 파일을 덮어쓰지 않습니다. 데이터를 쓴 뒤에는 모드를 바꿀 수 없습니다. set_mode는 1.61.0에 추가되었습니다.

write_dataframe

write_dataframe(df, partition_cols=None, bucket_cols=None, bucket_count=None,
                sort_by=None, output_format=None, options=None,
                column_descriptions=None, column_typeclasses=None)
인자형식조건
dfpyspark.sql.DataFrame기록할 DataFrame
partition_colslist[str]쓰기에 사용할 열 파티션. 기본값 None
bucket_colslist[str]버킷 기준 열. bucket_count를 지정하면 필수
bucket_countint버킷 수. bucket_cols를 지정하면 필수
sort_bylist[str]버킷 데이터의 정렬 기준 열. 기본값 None
output_formatstr출력 파일 형식. 미지정 시 parquet
optionsdictSpark DataFrameWriter의 option(String, String)에 전달할 옵션
column_descriptionsdict[str, str]열 이름별 설명. DataFrame 열과 교집합에 해당하는 설명만 반영하며 각 설명은 800자 이하
column_typeclassesdict[str, list[dict[str, str]]]열 이름별 typeclass 목록

column_typeclasses의 각 typeclass 맵에서 허용하는 키는 name과 kind뿐이며 각 문자열 값은 100자 이하여야 합니다. 형식 예시:

column_typeclasses = {
    "my_column": [{"name": "my_typeclass_name", "kind": "my_typeclass_kind"}]
}

메타데이터를 읽는 column_typeclasses 속성과 쓰기에 전달하는 위 중첩 구조를 구분합니다.

write_pandas(pandas_df)

주어진 pandas.DataFrame을 데이터셋에 기록합니다.

abort()

이 출력의 모든 작업을 중단합니다. 이 출력에서 얻은 writer가 호출 전이나 후에 수행한 작업도 무시합니다. 작업 전체와 모든 출력 트랜잭션을 중단하는 ctx.abort_job과는 대상 범위를 구분합니다.