Apache BeamにおけるParDoとDoFnの実装の詳細

Apache BeamのParDoとDoFnの実装詳細

ODISSEIさんによる写真、Unsplashから

初心者向けのコードの詳しい説明

以前のチュートリアルで、Apache Beamの一般的な変換関数であるmap、filter、およびcombinePerKey()についてチュートリアルを作成しました。このチュートリアルでは、もう1つのMapのやり方であるParDo変換について説明します。ただし、ParDoは各PCollectionに対して変換を適用し、ゼロ個以上の要素を出力PCollectionに返します。一方、Map変換は入力要素ごとに正確に1つの要素を出力します。そのため、ParDoは多くの柔軟性を提供してくれます。

ParDo変換のもう1つの重要な側面は、DoFnの形式でユーザーコードを必要とすることです。いくつかの例を見てみましょう。

この公開データセットをダウンロードして、一緒に進めてください:

サンプルセールスデータ | Kaggle

このコードではGoogle Colabノートブックを使用して作業しているため、インストールが非常に簡単です。以下にインストールするためのコードを示します:

!pip install --quiet apache_beam

データという名前のディレクトリを作成し、使用するCSVファイルと今日の演習の出力を置くためのディレクトリを作成しました。

mkdir -p data

まず、データセットの最も単純な部分から取り組みます。データセットの各行をリスト化し、テキストファイルに出力します。

ビームパイプラインでテキストファイルを読み込むことは非常にシンプルで直感的です。CSVファイルを使用しているので、このためにCustomCoder()クラスを定義します。このクラスは、オブジェクトをバイト文字列にエンコードし、バイトをオブジェクトにデコードし、最後にコーダーが値を決定論的にエンコードすることを保証するかどうかを指定します。コーダーのドキュメントはこちらです。

from apache_beam.coders.coders import Coderclass CustomCoder(Coder):    """文字列をUTF-8として読み書きするためのカスタムコーダー。"""    def encode(self, value):        return value.encode("utf-8", "replace")    def decode(self, value):        return value.decode("utf-8", "ignore")    def is_deterministic(self):        return True

また、Pythonの.split()関数を単純に使用するSplitRow()クラスもあります。

class SplitRow(beam.DoFn):  def process(self, element)…

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

ピーター・マッキー、Sonarの開発者担当責任者-インタビューシリーズ

ピーター・マッキーはSonarのDeveloper Relationsの責任者です Sonarは、悪いコードの1兆ドルの課題を解決するプラットフォー...

機械学習

「Prolificの機械学習エンジニア兼AIコンサルタント、ノラ・ペトロヴァ – インタビューシリーズ」

『Nora Petrovaは、Prolificの機械学習エンジニア兼AIコンサルタントですProlificは2014年に設立され、既にGoogle、スタンフ...

人工知能

「クリス・サレンス氏、CentralReachのCEO - インタビューシリーズ」

クリス・サレンズはCentralReachの最高経営責任者であり、同社を率いて、自閉症や関連する障害を持つ人々のために優れたクラ...

データサイエンス

「2023年にデータサイエンスFAANGの仕事をゲットする方法は?」

データサイエンスは非常に求められる分野となり、FAANG(Facebook、Amazon、Apple、Netflix、Google)企業での就職は大きな成...

人工知能

「ジャスティン・マクギル、Content at Scaleの創設者兼CEO - インタビューシリーズ」

ジャスティンは2008年以来、起業家、イノベーター、マーケターとして活動しています彼は15年以上にわたりSEOマーケティングを...

人工知能

エンテラソリューションズの創設者兼CEO、スティーブン・デアンジェリス- インタビューシリーズ

スティーブン・デアンジェリスは、エンタラソリューションズの創設者兼CEOであり、自律的な意思決定科学(ADS®)技術を用いて...