Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS

5,353 views

Published on

「夏真っ盛り!Spark + Python + Data Science祭り」で @chezou が発表した資料です http://connpass.com/event/34680/

Published in: Technology

Ibis: すごい pandas ⼤規模データ分析もらっくらく #summerDS

  1. 1. 1© Cloudera, Inc. All rights reserved. Ibis: すごいpandas ⼤規模データ分析もらっくらく 有賀康顕, Cloudera 2016/7/25 Spark + Python + Data Science祭り
  2. 2. 2© Cloudera, Inc. All rights reserved. ⾃⼰紹介 • 有賀 康顕(ありが みちあき) • セールスエンジニア • お客様がCloudera製品を活⽤できるように⼀緒に議論するのが主な仕事 • メーカーの研究所で⾃然⾔語処理/機械学習の研究開発の後、 クックパッドで機械学習を活⽤したプロダクト開発を⾏ってきた email: ariga@cloudera.com chezou
  3. 3. 3© Cloudera, Inc. All rights reserved. http://chezou.hatenablog.com/entry/2016/05/05/222046
  4. 4. 4© Cloudera, Inc. All rights reserved. http://rebuild.fm/145/
  5. 5. 5© Cloudera, Inc. All rights reserved. ClouderaとData Science • Clouderaとは? • Hadoop/Sparkを中⼼とした ビッグデータ基盤を提供 • 社内にData Science teamを持つ • 皆さんもお世話になってるかも • 「Sparkによる実践データ解析」の 著者陣は現/元Cloudera社員 https://www.oreilly.co.jp/books /9784873117508/ Director of Data Science Sean Owen
  6. 6. 6© Cloudera, Inc. All rights reserved. Jupyter notebook使ってますか?
  7. 7. 7© Cloudera, Inc. All rights reserved. http://techlife.cookpad.com/entry/write-once-share-anywhare
  8. 8. 8© Cloudera, Inc. All rights reserved. Jupyter notebookを⽀えるpandas • PythonでDataFrameを扱うライブラリ • 表形式のデータをプログラマブルに処理できる • グラフ描画との連携が容易 • 作者はClouderaのエンジニア Creator of pandas Wes McKinney http://www.oreilly.co.jp/books/ 9784873116556/
  9. 9. 9© Cloudera, Inc. All rights reserved. pandasの例 http://goo.gl/vTh3mJ より抜粋 SQLを使わずにフィルター、集計ができる
  10. 10. 10© Cloudera, Inc. All rights reserved. pandasの課題 • データを全部メモリに載せてしまう • ⼤規模データに対しては、SQLでデータを絞ってから処理を⾏うことに なる
  11. 11. 11© Cloudera, Inc. All rights reserved. pandasの課題 • データを全部メモリに載せてしまう • ⼤規模データに対しては、SQLでデータを絞ってから処理を⾏うことに なる データの抽出の試⾏錯誤こそ プログラマブルにやりたかったのに・・・
  12. 12. 12© Cloudera, Inc. All rights reserved. pandasをカバーするIbis
  13. 13. 13© Cloudera, Inc. All rights reserved. Ibis • PythonとBig Dataをつなぐライブラリ • ⼤規模なデータに対しても pandas like に対話的な処理を可能にする • pandasとSQLエンジンを橋渡しすることで実現 • Impala / SQLite / PostgreSQL に対応 • Redshift / Presto / Vertica にも今後対応予定
  14. 14. 14© Cloudera, Inc. All rights reserved. CSV Big Data Before Ibis プログラマブル メモリに乗らないので SQLで絞込 pandas Impala Redshift Presto pandas
  15. 15. 15© Cloudera, Inc. All rights reserved. After Ibis プログラマブル pandas Ibis Impala Big Data CSVpandas プログラマブル Redshift, Prestoなどにも 今後対応予定
  16. 16. 16© Cloudera, Inc. All rights reserved. Impalaとは? • Apache Impala (incubating) • ビッグデータに特化した • インタラクティブな • 分析SQL • 15TBに対して4.4秒で処理できる!
  17. 17. 17© Cloudera, Inc. All rights reserved. Demo • Ibis を使って Movie Lens 20M (2千万⾏)のデータを可視化 • scikit-learn で好みの映画を分類するモデルを学習 • バックエンドは Impala • impaladの動くサーバの21050ポート/NNの50070ポートを開ける • 今⽇の notebook • https://github.com/chezou/ibis-demo/
  18. 18. 18© Cloudera, Inc. All rights reserved. Demo pip install ibis-framework よりはじめよう
  19. 19. 19© Cloudera, Inc. All rights reserved. PySparkとはどう違うの? • 設定が簡単 • DBのコネクションの設定 + port開放だけ • 速い • 7倍速ければ7倍試⾏錯誤ができる • 速度の変化は質の変化を⽣み出す • データ規模に応じて使い分け • ⼤規模データ全体の機械学習ならSpark + MLlib • ターゲティングしたデータの機械学習にはIbis + scikit-learn • NetflixはグローバルのモデルはSpark、国・地域はRと使い分け http://goo.gl/UA8PXzより引⽤(2016/02時点)
  20. 20. 20© Cloudera, Inc. All rights reserved. Further more • Redshift, Presto, Vertica, Spark SQLは今後対応予定 • Redshift は array_agg(), substr() など PostgreSQLと関数名が異なる部分でうまくいかない • https://github.com/databricks/spark-sklearn • Sparkを使って並列でパラメータチューニングできる • ⼀部アルゴリズムはSpark MLlib向けにモデルを変換可能
  21. 21. 21© Cloudera, Inc. All rights reserved. Letʼs pip install ibis-framework ariga@cloudera.com

×