5B. [Repositories] Publishing and Using Shared Libraries in Code Repositories13 - クリーンな「乗客」出力データセットの作成、パート 2
Warning

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

13 - クリーンな「乗客」の出力データセットを作成する、パート 2

learn.palantir.com ↗でも以下の内容をご覧いただけますが、アクセシビリティの観点から、ここに掲載しています。

🔨 タスクの説明

  1. 新しい clean フォルダーに passengers_clean.py という名前の新しい Python ファイルを追加し、デフォルトのコンテンツを下記のコードブロックに置き換えてください。

    from transforms.api import transform_df, Input, Output
    from pyspark.sql import functions as F
    from cleaning_functions import type_utils as types, cleaning_utils as clean
    
    
    @transform_df(
        Output("/${space}/Temporary Training Artifacts/${yourName}/Data Engineering Tutorials/Datasource Project: Passengers/data/clean/passengers_clean"),
        source_df=Input("${passengers_preprocessed_RID}"),
    )
    def compute(source_df):
    
        # define string columns to be normalized
        normalize_string_columns = [
            'first_name',
            'last_name',
            'flyer_status',
        ]
    
        # define columns to be cast to dates
        cast_date_columns = [
            'dob',
        ]
    
        # cast columns to appropriate types using functions from our utils files
        typed_df = types.cast_to_date(source_df, cast_date_columns, "MM/dd/yy")
    
        # normalize strings and column names using functions from our utils files
        normalized_df = clean.normalize_strings(typed_df, normalize_string_columns)
        normalized_df = clean.normalize_column_names(normalized_df)
    
        # select columns in the order we want and rename where appropriate
        normalized_df = normalized_df.select(
            'passenger_id',
            'first_name',
            'last_name',
            'country',
            F.col('dob').alias('date_of_birth'),
            'flyer_status',
        )
    
        return normalized_df
    
  2. 次の項目を置き換えてください:

    • ${space} をユーザーの space に置き換えてください。

    • ${yourName} をユーザーの /Tutorial Practice Artifacts フォルダーの名前に置き換えてください。

    • ${passengers_preprocessed_RID}passengers_preprocessed.py で定義した出力の RID に置き換えてください。

      ℹ️ あなたのインポート文が Code Assist によって赤く下線引きされている場合は、リポジトリの meta.yml ファイルを開き、エディタの上部にある Refresh Code Assist dependencies リンクを選択してください。

  3. Preview ボタンを使用して、あなたのトランスフォームのサンプル出力を確認してください。

    ℹ️ Preview ヘルパーでは、INPUTSOUTPUTS ブロックを左側のヘルパー上で交互にクリックすることで、入力のサンプルと出力のサンプルを素早く切り替えて結果を比較することができます。

  4. /datasets フォルダーに passenger_flight_alerts_clean.py という新しいファイルを作成し、デフォルトのコードを下記のコードブロックに置き換えてください。

    from transforms.api import transform_df, Input, Output
    from cleaning_functions import cleaning_utils as clean
    
    
    @transform_df(
        Output("/${space}/Temporary Training Artifacts/${yourName}/Data Engineering Tutorials/Datasource Project: Passengers/data/clean/passenger_flight_alerts_clean"),
        source_df=Input("${passenger_flight_alerts_preprocessed_RID}"),
    )
    def compute(source_df):
    
        # normalize column names using functions from our utils files
        normalized_df = clean.normalize_column_names(source_df)
    
        return normalized_df
    
  5. passenger_flight_alerts_clean.py トランスフォームファイルに対して、手順 2 と 3 を繰り返してください。{$passenger_flight_alerts_preprocessed_RID} プレースホルダーについては、リポジトリの passenger_flight_alerts_preprocessed.py トランスフォームファイルを参照して出力 RID を取得してください。

  6. 新しいコードを意味のあるメッセージ(例:「feature: add clean outputs」)でブランチにコミットしてください。

  7. ブランチ上でクリーンなデータセットをビルドし、データが正規化され、適切にフォーマットされていることを確認してください。例えば、Master 上の passengers_preprocessed データセットとあなたのブランチ上の passengers_clean を比較することを考えてみてください。

  8. コードファイル内の Input パスを Replace paths with RIDs リンクを使用して RID に置き換えることを検討してください。これはコードへの変更なので、新たなコミットが必要になることを覚えておいてください。

  9. ブランチ上でビルドが成功したら、PR を作成し、あなたのブランチを Master にマージしてください。

  10. Master ブランチ上でクリーンな出力をビルドしてください。