Pythonのプロパティ - Cloud

Talend Cloud Pipeline Designerプロセッサーガイド

author
Talend Documentation Team
EnrichVersion
Cloud
EnrichProdName
Talend Cloud
task
ジョブデザインと開発 > パイプラインのデザイン
EnrichPlatform
Talend Pipeline Designer

Pythonコードを使ってレコードを処理できるように設定するプロパティです。

サポートされているPythonのバージョンは2.7.xです。

プロパティ

設定

設定 [Map type] (マップの種類)
実行する変換のタイプとして次のいずれかを選択します。
  • [MAP] (マップ): 1つのエレメントのみ返します。
  • [FLATMAP] (フラットマップ): エレメントのリスト(0件以上)をイテレーターとして返します。

詳細は、MAP (マップ)とFLATMAP (フラットマップ)の違いを参照してください。

[Python code] (Pythonコード)

このブロックにPythonコードを入力します。ボタンをクリックするとエディターが別のダイアログボックスで開きます。

エディターにはコードの説明に役立つ以下のような機能があります。
  • 入力時のオートコンプリート(関数、レコード値など)
  • エレメント、行、構文の強調表示(丸括弧や角括弧の一致など)
  • 切り取り、コピー、貼り付け
  • 変数およびAvpath構文
注: PythonプロセッサーではJavaパッケージのインポート(import java.ioなど)がサポートされていません。

Pythonの構文に関する便利なヒントは、Pythonの使用に役立つヒントを参照してください。

Pythonの詳細は、Pythonのオンラインドキュメントを参照してください。

情報 [Description] (説明) - オプション

プロセッサーの説明を入力します。

プロセッサー名を変更する場合は、該当するプロセッサーのデフォルト名の横にある [Edit] (編集)アイコンをクリックします。

MAP (マップ)とFLATMAP (フラットマップ)の違い

  • [MAP] (マップ):

    Pythonプロセッサーでは、入力ごとに出力レコードが自動的に生成されます。結果はoutputという名前の変数に格納されます。したがって、各レコードを渡すだけの最も単純なPythonコードは以下のようになります。

    output = input

  • [FLATMAP] (フラットマップ):

    レコードを明示的に出力するかどうかはPythonコードで決定します。これは複雑なフィルタリングなど、処理ロジックで入力レコード件数よりも少ないレコード件数で出力する場合に便利です。単純/通常のフィルタリングの場合は専用のフィルタープロセッサーを使用できます。

    レコードを出力するには、レコードをoutputという変数に明示的に追加する必要があります。したがって、単にすべてのレコードを渡す最も単純なPythonコードは以下のようになります。

    output.append(input)

    ただし、以下のコードを使用することもできます。
    if input["passengers"] > 4:
        output.append(input)

    この場合、Pythonプロセッサーは乗客数が4を超えた場合にのみ入力を渡すため、フィルターのように機能します。