参考
公式サイトの確認
ここでは気になったことを記しておく。
Scalaでも使える?
公式GitHubのREADMEには、 Use in python or scala という項目があり、 そこには以下のような記述がある。
1 | PixieDust lets you bring robust Python visualization options to your Scala notebooks. |
1 | Scala Bridge. Use Scala directly in your Python notebook. Variables are automatically transfered from Python to Scala and vice-versa. Learn more. |
1 | Spark progress monitor. Track the status of your Spark job. No more waiting in the dark. Notebook users can now see how a cell's code is running behind the scenes. |
Jupyterに独自のカーネルをインストールして使う
カーネルを追加することで、ユーザが自身の環境に依存するライブラリ(Sparkなど)をインストールしなくても 簡単に使えるようになっているようだ? ★要確認
動作確認
まずは、公式ウェブサイトのインストール手順 を読みつつ、 Qiitaの紹介ブログ を読みながら、軽く試してみることにした。 Anacondaを使っているものとし、Condaで環境を作る。
1 | $ conda create -n PixieDustExample python=3.5 jupyter |
また 公式ウェブサイトのインストール手順 には、以下のような記述があり、 Pythonは2.7もしくは3.5が良いようだ。
1 | Note PixieDust supports both Python 2.7 and Python 3.5. |
pipでpixiedustを探すと、エコシステムが形成されているようだった。
1 | $ pip search pixiedust |
そのまま入れることとする。依存関係でいくつかライブラリが入る。
1 | $ pip install pixiedust |
エラー。
1 | twisted 18.7.0 requires PyHamcrest>=1.9.0, which is not installed. |
condaでインストールする。
1 | $ conda install PyHamcrest |
PixieDust向けのJupyterカーネルをインストールする。 なお、本手順の前に、JDKがインストールされ、JAVA_HOMEがインストールされていることを前提とする。
1 | $ jupyter pixiedust install |
エラー。
1 | $ jupyter pixiedust install |
Sparkのダウンロードで失敗しているようだ。
軽くデバッグしたところ、URLとして渡されているのは、
http://apache.claz.org/spark/spark-2.3.0/spark-2.3.0-bin-hadoop2.7.tgzのようだった。
確かに、リンク切れ?のようだった。いったん、Spark公式サイトのダウンロードページで
指定されるURLからダウンロードするよう、createKernel.pyを修正して実行することにした。
なお、上記手順により、指定したディレクトリにSparkとScalaがインストールされる。 成功すると、以下のようなメッセージが見られる。
1 | (snip) |
なお、そのまま実行したら、以下のライブラリが足りないと言われたので予めインストールすることとする。 (bokeh、seabornはついでにインストール。インストールしないとRendererの選択肢が出てこない)
1 | $ conda install matplotlib pandas PyYaml bokeh seaborn |
さて、 Qiitaの紹介ブログ では、PixieDustのカーネルインストール時に一緒にインストールされるノートブックではなく、 日本語でわかりやすい紹介記事が書かれているが、ここではいったん、上記のインストール時のメッセージに従うこととする。
Jupyterを起動
1 | $ jupyter notebook /home/dobachi/pixiedust/notebooks |
あとは、適当にノートブックを眺めて実行する。
PixieDust 1 - Easy Visualizationsで気になったこと
Loading External Data節でD3
Rendererを試したところ、以下のようなエラー。
1 | Object of type ndarray is not JSON serializable |