IncrementalTransformOutput: 증분 Spark 출력
transforms.api.IncrementalTransformOutput은 TransformOutput에 증분 읽기 모드와 쓰기 의미를 추가합니다.
transforms.api.IncrementalTransformOutput(toutput, prev_txrid=None, mode="replace")
생성자 기본값과 실제 증분 실행의 쓰기 모드를 구분합니다. 실행 모드는 incremental의 상태 판단과 명시적인 set_mode 설정을 따릅니다.
메타데이터 속성
| 속성 | 형식 | 의미 |
|---|---|---|
batch_incremental_configuration | BatchIncrementalConfiguration | 배치로 읽는 증분 입력의 설정 |
branch | str | 데이터셋 브랜치 |
column_descriptions | dict[str, str] | 열별 설명 |
column_typeclasses | dict[str, str] | 열별 typeclass 메타데이터 |
start_transaction_rid | str | 읽기 범위의 시작 트랜잭션 RID |
end_transaction_rid | str | 읽기 범위의 끝 트랜잭션 RID |
path | str | Compass 경로 |
rid | str | 데이터셋 RID |
dataframe(mode="current", schema=None)
added, current, previous 중 선택한 뷰를 PySpark DataFrame으로 반환합니다. 기본값은 current입니다. schema는 빈 DataFrame을 만들 때 사용할 pyspark.sql.types.StructType입니다.
previous 모드에서 이전 트랜잭션이 없으면 schema가 필요합니다. 이 상황에서 스키마를 전달하지 않으면 ValueError가 발생합니다. 실제 출력 열에 맞는 스키마를 사용합니다.
파일과 pandas 읽기
filesystem(mode="current")은 added, current, previous 뷰의 FileSystem을 제공합니다. current 파일시스템만 쓸 수 있습니다.
pandas(mode="current", schema=None)는 선택한 뷰의 pandas.DataFrame을 반환합니다. 모드 기본값은 current이며 빈 데이터 읽기에 사용할 schema를 전달할 수 있습니다.
출력 처리
from_transform_output(instance, delegate)는 delegate TransformOutput의 필드값을 instance에 설정하는 클래스 메서드입니다. abort()는 이 출력의 모든 작업을 중단하며 이 출력에서 얻은 writer의 호출 전후 작업도 무시합니다. abort는 1.7.0에 추가되었습니다.
set_mode(mode)
문자열 mode로 쓰기 모드를 바꿉니다. replace는 데이터셋을 대체하고, modify는 데이터를 추가하며, append는 데이터를 추가하되 기존 파일을 덮어쓰지 않습니다. 데이터를 쓴 뒤에는 모드를 바꿀 수 없습니다. set_mode는 1.61.0에 추가되었습니다.
표 쓰기
다음 메서드의 입력, 버킷 인자 짝 조건, parquet 기본 형식, 열 설명 800자 및 typeclass 문자열 100자 한도는 TransformOutput과 같습니다.
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)
write_pandas(pandas_df)
write_dataframe은 PySpark DataFrame, write_pandas는 pandas.DataFrame을 기록합니다. column_typeclasses의 중첩 쓰기 형식과 읽기 메타데이터 속성의 역할을 구분합니다.