前処理は、ローカルおよびクラウドで実行できます。ローカルで実行する方法を知っています。
クラウド上で実行するにはどうすればよいですか?
Datalab を使用している場合は、セルに %ml preprocess --cloud と入力するだけで、生成されたテンプレートにクラウド フックが含まれます。
既存のコードを変更する場合は、DirectPipelineRunner を DataflowPipelineRunner に置き換えます。また、いくつかの「コマンドライン」引数を指定する必要があります。
次に例を示します。
RUNNER = 'DataflowPipelineRunner'
OUTPUT_DIR = 'gs://{0}/preprocessed_output/'.format(BUCKET)
options = {
'staging_location': os.path.join(OUTPUT_DIR, 'tmp', 'staging')
'temp_location': os.path.join(OUTPUT_DIR, 'tmp'),
'job_name': 'preprocess' + '-' + datetime.datetime.now().strftime('%y%m%d-%H%M%S'),
'project': PROJECT,
'extra_packages': [ml.sdk_location],
'teardown_policy': 'TEARDOWN_ALWAYS',
'no_save_main_session': True
}
opts = beam.pipeline.PipelineOptions(flags=[], **options)
pipeline = beam.Pipeline(RUNNER, options=opts)