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

人工知能

「サティスファイラボのCEO兼共同創設者、ドニー・ホワイト- インタビューシリーズ」

2016年に設立されたSatisfi Labsは、会話型AI企業のリーディングカンパニーです早期の成功は、ニューヨーク・メッツ、メイシ...

人工知能

「LeanTaaSの創設者兼CEO、モハン・ギリダラダスによるインタビューシリーズ」

モーハン・ギリダラダスは、AIを活用したSaaSベースのキャパシティ管理、スタッフ配置、患者フローのソフトウェアを提供する...

人工知能

「コマンドバーの創設者兼CEO、ジェームズ・エバンスによるインタビューシリーズ」

ジェームズ・エバンズは、CommandBarの創設者兼CEOであり、製品、マーケティング、顧客チームを支援するために設計されたAIパ...

人工知能

「スノーケルAIのCEO兼共同創設者、アレックス・ラットナー - インタビューシリーズ」

アレックス・ラトナーは、スタンフォードAIラボを母体とする会社、Snorkel AIのCEO兼共同創設者ですSnorkel AIは、手作業のAI...

AIテクノロジー

「LXTのテクノロジーバイスプレジデント、アムル・ヌール・エルディン - インタビューシリーズ」

アムル・ヌール・エルディンは、LXTのテクノロジー担当副社長ですアムルは、自動音声認識(ASR)の文脈での音声/音響処理と機...

人工知能

「UVeyeの共同設立者兼CEO、アミール・ヘヴェルについてのインタビューシリーズ」

アミール・ヘヴァーは、UVeyeのCEO兼共同創設者であり、高速かつ正確な異常検出により、自動車およびセキュリティ産業に直面...