5A. [Code Repositories] 코드 리포지토리에서 원시 파일 다루기8 - 데이터 전처리, 파트 2

본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

8 - 데이터 전처리, 파트 2

이 내용은 learn.palantir.com ↗에서도 확인할 수 있으며, 접근성을 위해 여기에도 제공됩니다.

📖 작업 소개

이전 튜토리얼의 단계를 passengers_preprocessed.py 변환에 대해 반복하세요.

🔨 작업 지시사항

  1. /preprocessed 폴더에 passengers_preprocessed.py라는 새 Python 파일을 생성하세요.

  2. passengers_preprocessed.py 파일을 열고 기본 코드를 아래 코드로 교체하세요.

    from transforms.api import transform, Input, Output
    from transforms.verbs.dataframes import sanitize_schema_for_parquet
    
    
    @transform(
        parsed_output=Output("/${space}/Temporary Training Artifacts/${yourName}/Data Engineering Tutorials/Datasource Project: Passengers/datasets/preprocessed/passengers_preprocessed"),
        raw_file_input=Input("${passengers_json_raw_RID}"),
    )
    def read_json(ctx, parsed_output, raw_file_input):
    
        # Create a variable for the filesystem of the input datasets
        filesystem = raw_file_input.filesystem()
    
        # Create a variable for the hadoop path of the files in the input dataset
        hadoop_path = filesystem.hadoop_path
    
        # Create an array of the absolute path of each file in the input dataset
        paths = [f"{hadoop_path}/{f.path}" for f in filesystem.ls()]
    
        # Create a Spark dataframe from all of the JSON files in the input dataset
        df = ctx.spark_session.read.json(paths)
    
        """
        Write the dataframe to the output dataset, using the sanitize_schema_for_parquet function
        to make sure that the column names don't contain any special characters that would break the
        output parquet file
        """
        parsed_output.write_dataframe(sanitize_schema_for_parquet(df))
    
  3. 다음을 대체하세요:

    • 6행의 ${space}자신의 공간으로 대체하세요.
    • 6행의 ${yourName}자신의 Tutorial Practice Artifacts 폴더 이름으로 대체하세요.
    • 7행의 ${passengers_json_raw_RID}passengers_raw.py에서 정의된 passengers_json_raw 데이터셋의 RID로 대체하세요.
  4. 오른쪽 상단의 미리보기 버튼을 사용하여 코드를 테스트하고 결과물이 원시 파일이 아닌 데이터셋으로 표시되는지 확인하세요.

  5. 테스트가 예상대로 작동하면, 예를 들어 "기능: passengers_preprocessed 추가"라는 의미 있는 메시지와 함께 코드를 커밋하세요.

  6. 기능 브랜치에서 passengers_preprocessed.py 코드를 빌드하고 결과 데이터셋이 승객과 항공편 알림의 두 열 매핑을 포함하는지 확인하세요.

  7. 입력/출력 변환 경로를 관련 RID와 바꾸어 보세요.

  8. 빌드가 모두 성공적으로 완료되면 이전 튜토리얼에서 설명한 PR 프로세스를 사용하여 기능 브랜치를 Master에 병합하세요.

  9. 마지막으로, Master 브랜치에서 두 개의 전처리된 결과물을 빌드하세요.