Polynote とは
Polynote は先日 Netflix が公開した notebook です。
Jupyter Notebook のようなものだと考えるとイメージしやすいと思います。
現在は Scala、Python、SQL に対応していて、セルごとに使い分けられるのが特徴的です。
今回は環境構築をして簡単なコードを動かすことを目標にやっていきます。
環境構築
macOS Catalina での動作を確認しました。
公式ドキュメントを参考に。
Spark
Apache Spark が必要になります。
英語ですがこのブログが非常に参考になりました。
筆者の場合は既に JVM や Scala を入れていたので、Spark のインストール部分のみ行いました。
Java は Java8 を選ぶのが無難だと思います。 cf. Stack Overflow: spark-2-4-java-11-compatibility
Python
Python3 と pip3 が必要なのでインストールしておきましょう。
いくつかの依存パッケージをインストールします。
pip3 install jep jedi pyspark virtualenv
必要なら pyspark
や pandas
なども入れておきます。
Polynote
まずここから最新のバージョンのものをダウンロードします。
今回は 0.2.13
の polynote-dist.tar.gz
を選びました。
そして展開して notebook を立ち上げます。
tar -zxvpf polynote-dist.tar.gz
cd polynote
./polynote.py # localhost:8192 にノートブックが立ち上がる
動かしてみる
基本的な操作については公式ドキュメントにあります。
ノートブックを作成して Spark の設定をする
ブラウザで localhost:8192
にアクセスします。
ノートブックを新規作成して Spark の設定をします。
Configuration & dependencies
の Spark Config
で
key: spark.master
val: local[*]
を入れて Save & Restart
します。
コードを書いて実行
Spark の Dataframe を作って、グラフの描画機能の使ってみます。
以下のコードを入力して実行します。
import org.apache.spark.sql._
import org.apache.spark.sql.types._
val schema = StructType(
List(
StructField("name", StringType, true),
StructField("point", IntegerType, true)
)
)
val data = Seq(
Row("Taro", 10), Row("Jiro", 20), Row("Ichiro", 30)
)
val df = spark.createDataFrame(
spark.sparkContext.parallelize(data),
schema
)
df
Out
にあるグラフマークをクリックするとモーダルが現れます。
Measures
の Mean point
を Y 軸に、 Dimensions
name
を X 軸にドラッグアンドドロップし、 playPlot
をクリックします。
グラフが表示されました。
以上、環境構築をして簡単なコードを動かしてグラフの描画機能を使ってみました。
Polynote は現在ベータ版で、マイナーバージョンアップは数日ごとに行われているような状況なので、環境構築や操作については大きな変更があるかもしれません。