Scala/SparkのJupterカーネル「Almond」の導入

Jupyter Almondカーネルをインストールする

Spark/Scalaを使うことができるJupyterのカーネルとして,Apache Toreeのメンテナンスをしています.

Home

Apache Toreeは,Spark3対応の開発が進んでいる状況ですが,なにぶん開発がアクティブとは言い難いです.
GitHub - apache/incubator-toree: Mirror of Apache Toree (Incubating)
最後のコミットは昨年8月のようです.
Prepare for next development interaction 0.6.0.dev1 · apache/incubator-toree@fb61d80 · GitHub

f:id:tullio:20210303223421j:plain
Apache Toree Commit Activity
f:id:tullio:20210303223524j:plain
Almond Commit Activity

Commit Activityを見ると開発の活発度は一目瞭然です.
そこで,Almondを試しにインストールしてみました.

インストール方法

オフィシャルサイトでは,色々なインストール方法が紹介されています.
Installation · almond
私はこれで行きました.

$ curl -Lo coursier https://git.io/coursier-cli
$ chmod +x coursier
$ ./coursier -J-Dhttps.proxyHost=[Proxyのアドレス] -J-Dhttps.proxyPort=[Proxyのポート] bootstrap almond:0.11.0 --scala 2.12.9 -o almond
$ ./almond --install --name 'Scale(almond)' --id scala_almond 

注:Jupyter自体は予めインストールされているとします.

Proxy設定について

proxyが必要な環境だったので,結構ハマりました.
インストールの際は,上記の用にcoursierコマンドに,Java用のProxy設定オプションを加えます.また,Jupyterを立ち上げてカーネルとしてscala_almondを選んでからも,ライブラリインストールのために以下のコマンドをノートブック上で実行します.

System.setProperty("https.proxyHost","Proxyのアドレス")
System.setProperty("https.proxyPort", "Proxyのポート")

Sparkを使うためには,以下のようにSparkのライブラリを導入します.

import $ivy.`org.apache.spark::spark-sql:3.1.1`

そういや,ちょうどSpark-3.1.1がリリースされました.
Spark 3.1.1 released | Apache Spark