本記事の背景・目的・対象者
昨今、機械学習やAIを始め様々な事業においてデータ活用の重要度が増しています。データ活用するにあたって必要になってくるのが、以下の4点です
- データを集めること
- 集めたデータを解析しやすいように変換・保存すること
- 解析しやすくなったデータを解析すること
- 解析したデータをわかりやすく表示すること
2の集めたデータを解析しやすいように変換・保存することをETL(Extract Transform Load)と呼び、いわゆるデータ基盤エンジニアのメインとなる仕事がこの部分です。
このETLに非常に適したフレームワークがPySparkです。本記事においてはこのPySparkをとにかく楽に簡単に手元で動かしてみることを目的とします。詳しい仕組みについての説明はここではしません。
従って本記事の対象者はこれからデータ基盤エンジニアを目指す人や目指すかどうかはおいといてデータ基盤エンジニアの仕事に興味がある人やとにかくPySparkをいじってみたい!という人を対象としています。
PySparkとは
PySparkとはApach SparkのPython版です。
Apach Sparkとはすごくザックリいうといい感じにメモリを使う分散処理システムです。AWSがこのSparkと色々な独自の便利機能を組み合わせてすごく便利にETLを行えるGlueというリソースを提供しています。
もっと具体的にSparkのことについて知りたい方はこちらをご覧下さい。
準備
big-data-europeという団体が提供しているDockerイメージを用いてPySparkを試してみるのが非常に楽で簡単です。こちらにbig-data-europeが提供するDockerイメージとPySparkのインストールやサンプルコードまでセットになったリポジトリを用意しておきました。
$ git clone git@github.com:yuma300/docker-pyspark-try.git
$ cd docker-pyspark-try
$ docker-compose up -d
$ docker exec -it spark-master bash
これで準備完了です。あとは試してみるだけです
実行
準備の段階でコンテナイメージの中に入っているので、そのまま以下を実行します
# cd home
# python setup.py install
# python sample.py
するとサンプルコードのsample.pyが実行され PySparkにより以下が画面に出力されます
+---+-------+
| id| name|
+---+-------+
| 1| spade|
| 2| hurt|
| 3| club|
| 4|diamond|
+---+-------+
以上で終了です。これでとにかくPySparkを実行する環境は整ったのであとはプログラムさえ書ければPySparkを用いたETLスクリプトの開発が出来るようになりました。
採用目的
現在私が所属するbitbankではデータ基盤エンジニアの採用を行っております。興味を持たれた方は是非下からご応募よろしくお願いします。