sparkmagicを使用すると、jupyter上でSparkクラスタの処理が可能になる。
導入方法は参考リンクを参照。

ノートブック形式で作業をまとめられるのが便利な反面、
sparkmagic特有の問題とかもあるので、まとめてみる。

Tips

一定時間使用しないと、Livyセッションが終了してしまう

デフォルトだと1時間で終了するみたい。
livy.confで「livy.server.session.timeout」を任意の値を変える。

SQLモードで「IOPub data rate exceeded」エラー

jupyter_notebook_config.pyの値を増やす。
jupyter_notebook_config.pyはデフォルトでは、~/.jupyter/配下にある。


c.NotebookApp.iopub_data_rate_limit = 1000000

matplotlibが利用できない

Livyで、matplotlibの結果は受け取れないみたい。
– [bug] matplotlib is not plotting variables from livy

Spark DataFrameをregisterTempTableで一時テーブルとして、
SQLモードでローカルへ出力する。
そうすると、ローカルモードでPandasのDataFrameとして値が受け渡されるので、それを使ってグラフを描く。
ローカルモードでjupyterが参照しているpythonカーネルは、PySparkカーネルとは違うので、処理に必要なライブラリは別途設定する必要がある。

%%sql -o plot_data
select * from spark_dataframe
%%local
%matplotlib inline

plot_data # SQLモードで-oで指定した変数名で参照できる

参考

    JupyterからSpark clusterを操作できるlivy + sparkmagicを試してみた
广告
将在 10 秒后关闭
bannerAds