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

人工知能

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

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

人工知能

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

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

機械学習

もし芸術が私たちの人間性を表現する方法であるなら、人工知能はどこに適合するのでしょうか?

MITのポストドクターであるジヴ・エプスタイン氏(SM '19、PhD '23)は、芸術やその他のメディアを作成するために生成的AIを...

人工知能

「15Rockの共同創業者兼CEO、ガウタム・バクシ氏によるインタビューシリーズ」

「ガウタム・バクシは、気候リスク管理とアドバイザリーサービスのグローバルリーダーである15Rockの共同創設者兼CEOですガウ...

人工知能

「aiOlaのCEO兼共同創設者、アミール・ハラマティによるインタビューシリーズ」

アミール・ハラマティは、aiOlaのCEO兼共同創業者であり、スピーチを作業可能にし、どこでも完全な正確さで業界固有のプロセ...

人工知能

「Kognitosの創設者兼CEO、ビニー・ギル- インタビューシリーズ」

ビニー・ギルは、複数の役職と企業を横断する多様で幅広い業務経験を持っていますビニーは現在、Kognitosの創設者兼CEOであり...