Python 3サードパーティライブラリーをインストール
Python 3はPythonプロセッサーの代わりになります。古いプロセッサーで行えたことがすべてサポートされ、サードパーティライブラリーのインストールのようなファンクションがいくつか追加されます。
Python 2とPython 3の相違点
- コードはPython 2コードではなく、Python 3コードである必要があります。
- レコードの変更を試みる時に、[Map] (マップ)と[Flatmap] (フラットマップ)のコンセプトが存在しません。そのため、ユーザーインターフェイス内にある対応するドロップダウンリストが削除されました。
レコードのフィルタリング、マッピング、フラットマッピングを行うための簡単なコードを書くことができるようになるため、後者の違いは重要である。
if input['type'] == "house":
# Single family dwellings have a top-level occupant (MAP).
output = input['occupant']
elif input['type'] == "apartment":
# Apartment blocks have many occupants (FLATMAP).
output = [apt['occupant'] for apt in input['subdwellings']
else:
# Deleting the record (FILTER).
output = None
ライブラリーをインストール
- previewrunnerコンテナー
- livyコンテナー
ファイルを使うか、コマンドラインを経由してライブラリーをインストールできます。
requirements.txtファイルを使ってRemote Engine Gen2にライブラリーをインストール
previewrunnerコンテナーでは:
-
ローカルマシン内にフォルダーを作成します。たとえば、/tmp/rqmtsと名付けます。
- 次のファイルを開いて編集します:
default/docker-compose.yml - AWS米国、AWS欧州、AWSアジアパシフィック、Azureリージョンでエンジンを使用している場合
eap/docker-compose.yml - Early Adopter Program (早期導入者プログラム)の一部としてエンジンを使用している場合
- ファイルの
- /tmp/rqmts:/opt/rqmts
セクションに、次のパラメーターを追加します: PYTHON_RQMTS_PATH: /opt/rqmts
パスへの書き込みアクセスがある限り、それらを完全にカスタマイズできます。
セクションに次のパラメーターを追加して、変更を保存します:- Talend Cloud Pipeline Designerに移動して、Python 3プロセッサーを含むパイプラインの作成が通常どおりで行われることを確認します。
- /tmp/rqmtsフォルダー内にrequirements.txtファイルを作成します。このファイルは、Python Virtual Environmentにインストールするライブラリーを含む必要があります:
jinja2==2.11.2
- パイプラインに移動し、requirements.txtで指定されたライブラリーを使用するコードをPython 3プロセッサーに追加します。例:
from jinja2 import Template t = Template("Hello {{something}}!") output["hello"] = t.render(something = input["Op"])
変更を保存して、データが正しくプレビューされることを確認します。ローカルマシンのrequirements.txtファイルを変更して、コードをアップデートできます。すべてが正しく動作していることがわかるべきです。
livyコンテナーでは:
手順は、previewrunnerコンテナーのと同じで、唯一の相違点はdocker-compose.xmlファイルのlivyセクションを編集する必要があることのみです。
- クラスター内に[PYTHON_RQMTS_PATH]環境変数を追加します。ワーカーサーバーが強制終了すれば削除されるフォルダーではなく、マウントされたボリュームをポイントする必要があります。
例: /dbfs/tpd-python3-rqmts
- previewrunnerコンテナーと同様のステップ(/dbfs/tpd-python3-rqmtsフォルダー内にrequirements.txtを作成し、パイプラインをアップデートするなど)を繰り返します。すべてが正しく動作するべきです。
コマンドライン経由でRemote Engine Gen2にライブラリーをインストール
またライブラリーは、コマンドラインを使うか、シェルスクリプトを起動して直接にインストールできます。
そうするには、ライブラリーをpreviewrunnerコンテナーと[livy]コンテナーの両方にインストールする必要があります。
-
まず、Talend Cloud Pipeline DesignerでPython 3プロセッサーを含むパイプラインを作成し、それをプレビューしてみます。
これによって、previewrunnerコンテナーでPythonファイルをすべて解凍することが強制されます。
- コマンドラインから、次のようなコマンドを実行し、numpyをインストールします。例:
docker exec -it [previewrunner_docker_img_name] \ bash -c "source /tmp/luci/local/env/default/bin/activate && pip install numpy"
- それから、Python 3プロセッサーでコードを編集して、変更を保存できます。
-
Talend Cloud Pipeline Designerで、Python 3プロセッサーを含むパイプラインを作成し、すべてのPythonファイルの解凍を強制します。
- コマンドラインから、次のようなコマンドを実行し、jinja2をインストールします。例:
docker exec -it [livy_docker_img_name] \ bash -c "source /tmp/luci/local/env/default/bin/activate && pip install jinja2"
- jinja2を使用するコードをPython 3プロセッサーに書き込み、変更を保存して、プレビューが正しく表示されることを確認します。