2017-07-27 19 views
1

Google DataflowでカスタムApache Beam Pythonバージョンを実行できるかどうかは疑問です。公的なリポジトリでは入手できないバージョンです(この記事の執筆時点:0.6.0および2.0.0)。たとえば、Apache Beamの公式リポジトリからのHEADバージョン、またはそれに関する特定のタグ。データフローのカスタムApache Beam Pythonバージョン

公式documentationに記載されているように、私はカスタムパッケージ(例えば、私的なもの)を梱包する可能性を認識しています。他のスクリプトでこれを行う方法は、questionsです。そしてこれにはGIST guidingさえあります。

しかし公式リポジトリのマスターブランチで利用可能な現在のApache Beam開発版(またはタグ付きのもの)をパッケージ化してスクリプトに沿ってGoogle Dataflowに送ることはできませんでした。リンクPIPのプロセスになります最新の利用可能なタグ、ために例えば 、:

INFO:root:Executing command: ['.../bin/python', '-m', 'pip', 'install', '--download', '/var/folders/nw/m_035l9d7f1dvdbd7rr271tcqkj80c/T/tmpJhCkp8', 'apache-beam==2.1.0', '--no-binary', ':all:', '--no-deps'] 
DEPRECATION: pip install --download has been deprecated and will be removed in the future. Pip now has a download command that should be used instead. 
Collecting apache-beam==2.1.0 
    Could not find a version that satisfies the requirement apache-beam==2.1.0 (from versions: 0.6.0, 2.0.0) 
No matching distribution found for apache-beam==2.1.0 

任意のアイデア:git+https://github.com/apache/[email protected]#egg=apache_beam[gcp]&subdirectory=sdks/pythonは、私はこのような何かを得ますか? (Google Dataflowは公式リリースのものに実行できるApache Beamのバージョンを修正している可能性があるのか​​どうか疑問に思います)。

答えて

2

Apache BeamのJIRAで私がこの質問の回答を得たので、私は自分自身に答えるつもりです。

あなたは、それがある(GoogleクラウドのデータフローにカスタムApacheのビームPythonのバージョンを使用--runner DataflowRunnerであなたのパイプラインを実行したい場合は、あなたのパイプラインを実行したとき、あなたはオプション--sdk_location <apache_beam_v1.2.3.tar.gz>を使用する必要があります。<apache_beam_v1.2.3.tar.gz>は対応の場所でありますあなたは、ApacheビームのgitのrepositoryHEADバージョンをチェックアウトした場合に使用するバージョンをパッケージ化。例えば

、これを書いているとして、あなたはcd beam/sdks/pythonでPythonのSDKに移動して、最初のパッケージにリポジトリを持っていますpython setup.py sdistを実行します(圧縮されたtarファイルはdistサブディレクトリに作成されます)。

その後あなたがこのようなあなたのパイプラインを実行することができます。

python your_pipeline.py [...your_options...] --sdk_location beam/sdks/python/dist/apache-beam-2.2.0.dev0.tar.gz 

Googleクラウドのデータフローは、提供されたSDKを使用します。

関連する問題