こんにちは、香田です。
今回はApache Beam インタラクティブ ランナーをJupyterLabで実行する方法を紹介していきます。
事前にローカル環境にDocker Compose
が利用できるようにインストールしておいてください。
Apache Beam/JupyterLab 環境のセットアップ
はじめにdocker-compose
を利用し、Apache Beam/JupyterLab環境をセットアップしていきます。
下記のような構成で各ファイルを用意します。
$ tree
./
├── Dockerfile
├── docker-compose.yml
└── requirements.txt
- requirements.txt
apache-beam[gcp,interactive]
- Dockerfile
FROM jupyter/datascience-notebook:latest
COPY requirements.txt /tmp
RUN pip install -r /tmp/requirements.txt
- docker-compose.yml
version: "3.8"
services:
jupyterlab:
build: .
container_name: jupyterlab
ports:
- "8888:8888"
environment:
- JUPYTER_ENABLE_LAB=yes
volumes:
- '$PWD:/home/jovyan/work'
Apache BeamがインストールされたJupyterLab コンテナを起動します
$ docker-compose up -d --build
下記を実行しログイン用のtokenを確認します。tokenが表示されるのでコピーします。
$ docker-compose exec jupyterlab jupyter notebook list
http://localhost:8888
へアクセスし、コピーしたtokenを貼り付けログインします。
work
フォルダへ移動するとホスト側がマウントされているのが確認できるはずです。
Apache Beam インタラクティブ ランナーを実行する
次にNotebookを作成していきます。[File]、[New]、[Notebook]より[Python 3]を選択します。
セルに以降の内容を入力し、それぞれ実行していきます。
Apache beamの各パッケージをインポートします
import apache_beam as beam
from apache_beam.runners.interactive import interactive_runner
from apache_beam.runners.interactive.interactive_beam import *
InteractiveRunnerを使用しパイプラインを作成します
p = beam.Pipeline(interactive_runner.InteractiveRunner())
show()メソッドを使用すると、下記のようにデータが確認できるはずです。
init_pcoll = p | beam.Create(range(10))
show(init_pcoll)
さいごに
Apache Beam インタラクティブ ランナーをJupyterLabで実行する方法いかがでしたでしょうか。
料金は発生しますが、Google CloudのDataflowでもノートブックとして提供されており、こちらでもApache Beam インタラクティブ ランナーは実行可能です。
Apache Beam ノートブックを使用したインタラクティブな開発
最後までご覧頂きありがとうございます。