Spark Casual Talk #1 に行ってきました
最近データ解析や機械学習で色々と話題な Apache Spark ですが, その勉強会があるというので行ってきました. 一般枠が 123 人のところに 150 人の申し込みがあり, Spark が注目されているのが分かります.
勉強会の構成は, 発表が 2 つと LT が 6 本で 2 時間というものでした. 名前に casual とある通り, これから Spark に触れようという人でも気軽に参加できる内容だったと思います. (一部の LT は除く^-^;)
イベントページ: http://connpass.com/event/15575/ Togetter: http://togetter.com/li/838406
気になった話題
個人的に気になった話題について書いていきます. 個々の内容については, イベントページにアップロードされている資料や Togetter のつぶやきを参照してください.
DataFrame
メキメキ開発の進む Apache Sparkのいまとこれから: http://www.slideshare.net/hadoopxnttdata/nttdata-spark-casual-talk-1
2 つ目の発表「メキメキ開発の進む Apache Sparkのいまとこれから」で, Spark SQL が使っている DataFrame が紹介されていました. DataFrame は Spark SQL のためだけのものかと思っていましたが, DataFrame API も用意されていて Scala や Python など他の言語からも操作ができるようです. DataFrame には最適化の機能もあり, どの言語で書かれていても最適化の恩恵を等しく受けられるそうです.
Project Tungsten
Spark Summit 2015 参加報告: http://www.slideshare.net/potix2_jp/spark-summit-2015
1 つ目の発表「Spark Summit 2015 参加報告」で, Project Tungsten というパフォーマンス改善の取り組みが紹介されていました. このプロジェクトは, DataFrame で記述された論理計画を実行する部分を高速化しようというものです. 現在のハードウェアの流れを見ているとストレージやネットワークに比べて CPU の高速化が遅れているので, そこを補う方向を目指しているようです.
From DataFrames to Tungsten: A Peek into Spark’s Future: http://www.slideshare.net/databricks/2015-0616-spark-summit
JIRA にプロジェクトの親 issue があり (SPARK-7075 https://issues.apache.org/jira/browse/SPARK-7075) 関連 issue はその下にぶら下がっています.
Notebook
「メキメキ開発の進む Apache Sparkのいまとこれから」で Apache Zeppelin, 「Hueで実現する、SparkとSQLのためのノートブック」で CDH の Hue と複数の発表で notebook の話題が出てきていてかなり気になりました. notebook というのは私が勝手に呼んでいるツールの種類の名前で, だいたい次の機能を備えているものを notebook に分類しています.
- データの対話的操作
- コマントの結果やデータをグラフなどの画像で表現
昔からあるもので言えば, Mathematica, Maple, Sage (これは比較的最近) などの数式処理ソフト, 2 つ目の機能を実現するもので言えば Excel などの表計算ソフト, gnuplot などのグラフ化ツールなどがあります.
Spark にはデフォルトで pyspark から IPython notebook が利用できます. IPython は元々は Python の便利な REPL だったのですが, バージョン 0.12 からブラウザを UI とした notebook 機能が追加され, バージョン 4.0 からはそこを Jupyter という別プロジェクトとして発展させていくそうです.
- Apache Zeppelin: https://zeppelin.incubator.apache.org/
- Hue Notebook: http://www.slideshare.net/kernel023/hue-notebook, http://gethue.com/new-notebook-application-for-spark-sql-2/?lang=ja
- Mathematica: http://www.wolfram.com/mathematica/
- Maple: http://www.maplesoft.com/products/maple/
- Sage: http://www.sagemath.org/
- IPython: http://ipython.org/
- IPython notebook: http://ipython.org/ipython-doc/3/notebook/index.html
- Jupyter: https://jupyter.org/
上の機能に加え notebook ツールにあると便利な機能はこんなところです.
実行したコマンドの記録, 再現可能な形式での保存, 再実行
gnuplot の save, load コマンド相当のもの: http://lowrank.net/gnuplot/intro/basic.html#exit
複数人での画面の共有
複数人でチャットしつつ, それぞれがコマンドを入力し, その結果を共有できたり.
Google Wave がイメージに近かったのですが, なんで死んでしもうたんや……
なぜ私が notebook ツールに注目するかと言えば, それが分析とレポーティングに役立つツールだからです. くだけた言い方をすれば, notebook ツールはあるデータを自分や他の人に分かりやすく見せ, 対象について理解を深め, 何らかの行動につなげるために役立つ重要なツールだと思っています.
色んなことを知ることができた勉強会だったので Spark Casual #2 にも参加してみようと思います.
ではでは.