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

人工知能

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

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

人工知能

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

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

AIテクノロジー

アンソニー・グーネティレケ氏は、Amdocsのグループ社長であり、テクノロジー部門および戦略部門の責任者です- インタビューシリーズ

アンソニー・グーネティレーケは、Amdocsでグループ社長、テクノロジーと戦略担当です彼と企業戦略チームは、会社の戦略を策...

データサイエンス

「Seerの最高データオフィサーであるDr. Serafim Batzoglouによるインタビューシリーズ」

セラフィム・バツォグルはSeerのチーフデータオフィサーですSeerに加わる前は、セラフィムはInsitroのチーフデータオフィサー...

人工知能

「リオール・ハキム、Hour Oneの共同創設者兼CTO - インタビューシリーズ」

「Hour Oneの共同創設者兼最高技術責任者であるリオール・ハキムは、専門的なビデオコミュニケーションのためのバーチャルヒ...

人工知能

「ElaiのCEO&共同創業者、Vitalii Romanchenkoについてのインタビューシリーズ」

ヴィタリー・ロマンチェンコは、ElaiのCEO兼共同創設者であり、マイク、カメラ、俳優、スタジオの必要なく、個人が一流のビデ...