【読書】スケーラブルデータサイエンス 第6章
はじめに
今回も引き続き、スケーラブルデータサイエンスです。
今日は第6章。Dataprocです。ちなみに、第5章は個人的によく知っている話題が多かったので記事としては取り上げません。
まとめてみる
Dataproc上でJupyterNotebookの起動と接続
もともとは本に書いてあったとおりインストールスクリプトを走らせなくてはいけなかったようですが、いまはクラスタ作成時のオプションで以下を付ければ済むようでした。
--optional-components=ANACONDA,JUPYTER
あと、Jupyterを使う場合、bucketオプションを指定しておくことで作成したNotebookをGCS上に保存してくれるようになるので設定しておくとよさそうです。
--bucket=$BUCKET \
もう1点構築オプションに関して言うとリポジトリにあったスクリプトそのままだと動作せず、regionオプションを付けないと動きませんでした。
gcloud beta dataproc clusters create \ --region=us-west1 \ ...
また、接続もいちいちトンネルとかはらないでよく、GCP上のコンソールからいけます。非常に楽です。
諸々の修正を反映した版は以下におきました。
github.com
Notebookの編集と保存
UI的にはJupyterNotebook, JupyterLabの両方が使えますのでお好きな方を選択すればいいと思います。
先程、bucketオプションを指定しましたが、そうすると、
こんな感じで編集したものが
こんな感じで、シームレスに保存されますので、とてもいい感じですね。
今後解消されると思いますが、2020/09/15時点でこのNotebookからBigQuery -> Pandas DataFrameをしようとすると、Apache Arrow関連で以下のような問題が起こっているようです。
to_pandas() got an unexpected keyword argument 'timestamp_as_object'
とりあえず、以下を実行しカーネルを再起動すれば動作しますのでメモとして残しておきます。
!pip install google-cloud-bigquery==1.20.0 google-cloud-bigquery-storage==0.7.0 pandas==0.25.1 pandas-gbq==0.11.0 pyarrow==0.14.1
感想
この章はこれ以外にもSparkSQLやPigでの分析について記載がありましたが、その点は特に本の通りなので割愛しました。
個人的にはさすがクラウドサービスと言ったところで使いやすいようなクラスタが簡単に作れる(そして早い)ところがとても魅力的だし、使いやすく感じました。
いままでHadoopってなんとなく面倒・・・と思っていましたが、これならサクッと使い始められますね。