MMLSpark を Databricks on EC2 のクラスタにインストールする方法

はじめに

MMLSpark を Databricks (on AWS EC2) のクラスタで使用できるようにする手順を示します。

対象者

  • Databricks on EC2(AWS) で分析環境を立ち上げている
    • init_script をいじったけどなんだかうまく行かない
    • pip でもうまくいかない
    • MMLSpark は Azure 以外のプラットフォームで使えないの?
  • 現在使用しているアルゴリズムをSparkによる分散処理に最適化できないか方法を探している

mmlspark とは?

正式名称は、Microsoft Machine Learning for Apache Spark

Microsoft Azure のマネージド機械学習サービスである Cogninive Services や、機械学習の現場でよく使われる LightGBM などを Spark で効率的に活用できるように最適化したパッケージが揃っているライブラリです。

画像処理ライブラリの雄である OpenCV のパッケージもあります。2020年5月現在では一部の関数のみが実装されているのみですが、大量の画像に対してシンプルな前処理を並列かつ高速に行いたい場合には選択肢に入ってきそうです。
MMLSpark OpenCV Package

そしてこのパッケージ、Microsoft Azure 以外のプラットフォームでも使えます。

インストール方法

Databricks のワークスペースで、
ClustersからLibrariesに飛び、Install Newをクリック
スクリーンショット 2020-05-15 7.08.01.png

Library Source に Mavenを選択し、Repository に以下を入力、Installをクリック
com.microsoft.ml.spark:mmlspark_2.11:1.0.0-rc1
スクリーンショット 2020-05-15 7.10.58.png

しばらくするとこちらの画面に遷移します。
Status が InstalledになっていればOK。これで完了です。
スクリーンショット 2020-05-15 7.13.14.png

参考スクリプト

以下のような感じで、Collaborative Notebook 上でモジュールが使えるようになります。

result
image.png

result
image.png

result
image.png

result
image.png

おわりに

モジュールのインストール方法にもいろいろあるんですね。
依存関係が出やすいので pip 乱発はやめたいところです(自戒)

参考資料

公式 MMLSpark 紹介サイト
公式 MMLSpark Github

LightGBM 上記スクリプトソース