3. [Repositories] Creating a Project Output4 - 簡単なコードレビュー
Warning

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

4 - 簡単なコードレビュー

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

flight_alerts_clean.py のコードでは、以下の操作が行われています。

  1. 事前に処理された2つのマッピングデータセットを取得し、一時的にその列名を変更します。
  2. 事前処理済みのフライトアラートデータセットを2つのマッピングテーブルに結合し、ステータスと優先度コードを数字からテキスト文字列にマップします。
  3. 出力データセットの列を選択します。
  4. 2つの空の文字列列(assignee および comment)を追加し、運用上の下流ワークフローで使用されます(例えば、フライトアラートをオペレーターにアサインしてアクションを起こし、コメントを追加する場合など)。

PySparkの学習は、このトラックの範囲を超えています。ただし、コードベースのデータ変換を学ぶためのオンラインリソースがたくさんあります。flight_alerts_clean.pyのコードを簡単に見直して、基本的なベストプラクティスを示し、Foundryドキュメントで利用可能なPySparkリソースへの足がかりとしましょう。以下のテキストは、コードの運用上興味深い機能のいくつか(ただしすべてではない)を抽出しています。

このタスクでドキュメントへのリンクが提供されている場合は、それらを選択して表示されるセクションを読んでください。

DataFrame

DataFrameは、この段階のトレーニングでは表面的にしか扱えないSparkの概念です。簡単に言うと、DataFrameは、名前付きの列の下にある行のコレクションです。たとえば、コードの14行目では、priority_mapping_preprocessedからエイリアスされた列で構成されるpriority_mappingというDataFrameが作成されます。このDataFrameを定義すると、後の変換で名前で呼び出すことができます。

F.col() & .withColumn()

インポート文でpyspark.sqlのFunctionsモジュールを呼び出していることを思い出してください。コードのいくつかの箇所で、F.colを使用してDataFrame内の特定の列を参照できるようにしています。列参照については、このドキュメントページで詳しく説明しています。また、その記事では、withColumnを使用してDataFrameに任意の列を追加する方法も説明しています。

.select()

PySparkでは、selectはSQLでの使用方法とほぼ同じ方法で動作します。つまり、あるDataFrameから別のDataFrameに含める特定の列を選択します。DataFrame_Aに10列ある場合、そのうち3列だけが必要な場合、.select()を使ってDataFrame_Bを作成できます。 DataFrame_B = DataFrame_A.select('col_1'、'col_2'、'col_3')

このドキュメントエントリで述べられているように、.select()を使用してデータセットスキーマを指定することは、可能な限り使用すべきベストプラクティスです。

.join()

PySparkの結合は、SQLの結合がテーブルを結合するのと同様に、DataFrameを結合します。PySpark結合に関するドキュメントを確認してください。次に、このセクションを読んで、アンチパターンや効率的な結合動作を維持するためのベストプラクティスを紹介しています。