Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Big datauniversity

2,409 views

Published on

データサイエンティストのためのSpark入門

Published in: Technology

Big datauniversity

  1. 1. © 2016 IBM Corporation データサイエンティストのための Spark 入門 Tanaka Y.P 2016-05-14
  2. 2. © 2016 IBM Corporation2 お断り
  3. 3. © 2016 IBM Corporation3 自己紹介 田中裕一(yuichi tanaka) 主にアーキテクチャとサーバーサイドプログラムを担当 することが多い。Hadoop/Spark周りをよく触ります。 Node.js、Python、最近はSpark周りの仕事でScalaを書く ことが多い気がします。 休日はOSS周りで遊んだり。 詳解 Apache Spark
  4. 4. © 2016 IBM Corporation4 アジェンダ  Sparkの概要  Sparkのテクノロジースタック  データサイエンスにおけるSparkの意義  分析のおさらい  なぜSparkが重要なのか  DataScientistWorkBenchでSparkRを使ってみよう
  5. 5. © 2016 IBM Corporation5 Sparkの概要
  6. 6. © 2016 IBM Corporation6 DataFrames Sparkのテクノロジースタック Spark Core SparkSQL Spark Streaming GraphX MLlib HDFS Cassandra HBase ・・・ Packages
  7. 7. © 2016 IBM Corporation7 Spark Mllibでサポートされるアルゴリズム  Spark MllibとSparkML  SparkMLlibはMllibとSparkmlの2つの実装に分かれている • 現在は双方に個別の実装がなされている • Versionによって実装状況が異なるので注意  アルゴリズムは別紙説明
  8. 8. © 2016 IBM Corporation8 Apache SparkとHadoop HadoopでのMapReduceの処理例
  9. 9. © 2016 IBM Corporation9 Apache Sparkの処理概要 SparkでのRDD&DAGの処理例
  10. 10. © 2016 IBM Corporation10 データサイエンスにおけるSparkの意義  なぜSparkか?  Python,RのInterfaceが用意されている • ー>DataScientistが分析に集中できる  RのDataFrameに似たインタフェース • ー>DataFramesの考え方操作はRに類似  分散処理を意識することなく分析可能 • 大規模なデータセットを扱うことが可能 ー>Rの欠点の解決 • より高速な処理が可能 • 分散データストアとの親和性の高さ • ー>データの場所の問題の解決
  11. 11. © 2016 IBM Corporation11 分析の手順のおさらい 問題提起 リサーチ 前処理 モデル作成 テスト • ビジネス課題の設定 • 仮説 • KPIの設定 • データの把握 • 品質のチェック • 集約 • 変換・補完 • クレンジング • 分析 • 結果のモデル化 • 評価 • 結果の精査
  12. 12. © 2016 IBM Corporation12 Sparkがなぜ重要なのか?  実業務において解析に使えるデータがそのまま格納されていることは稀  値がない場合 • テーブル定義と実際のデータが違う • そもそも入ってない  変換が必要な場合 • 順序・名義 • 男女やそう思うなど  エラーデータや著しく外れたデータ • クレンジングが必要なケース  データ量が少ない
  13. 13. © 2016 IBM Corporation13 閑話休題 どのくらいのデータがあればいいのか?  データエンジニアとデータサイエンティストのコミュニケーション ミスに気をつける • 双方でデータに対する認識が違うとキャパシティプランニン グに失敗します。
  14. 14. © 2016 IBM Corporation14 DataScientistWorkbenchでRStudioを使ってみよう DataScientistWorkbench(DSWB)ではRStudioを立ち上げると SparkRに自動的に接続 ここから起動
  15. 15. © 2016 IBM Corporation15 sparkRSQLの生成 SparkContextを利用して、sparkRSQLからsqlContextを生成します。 SparkRではこのsqlContextを利用してデータフレーム操作を行います。
  16. 16. © 2016 IBM Corporation16 Rのデータセットからデータフレームの作成 RのfaithfulをもとにcreateDataFrameでデータフレームを作成します。
  17. 17. © 2016 IBM Corporation17 スキーマの確認 printSchemaを使ってスキーマを表示させます。
  18. 18. © 2016 IBM Corporation18 Columnの選択 Selectを使ってcolumnを絞ってみます。
  19. 19. © 2016 IBM Corporation19 データのフィルタリング filterを使ってデータのフィルタリングを行います
  20. 20. © 2016 IBM Corporation20 データのグルーピング groupByを使ってデータのグルーピングを行います
  21. 21. © 2016 IBM Corporation21 データの列の操作 データに新しく列を追加します。
  22. 22. © 2016 IBM Corporation22 sparkRの停止とcsvファイルの読み込み DSWBではディフォルトで幾つかのファイルが準備されています。 今回はresources/data/samples/weather/weather-stations20140101-20141231.csv の読み込みを行います。
  23. 23. © 2016 IBM Corporation23 sparkRroの停止とcsvファイルの読み込み SparkRではread.dfでファイルの読み込みを行うことが可能ですが、 read.dfはjson、parquetの形式をディフォルトでサポートします。 csvファイルを読み込むため、spark-packageからcsv用のpackageを SparkContextにロードする必要があります。
  24. 24. © 2016 IBM Corporation24 sparkRの停止とcsvファイルの読み込み read.dfコマンドでcsvファイルの読み込みを行っています。
  25. 25. © 2016 IBM Corporation25 ファイルへの出力 先ほどのweatherをProvでfilterし、write.dfを用いてparquet形式で出力します。
  26. 26. © 2016 IBM Corporation26 SQLとRの複合的な利用 registerTempTableをりようしたSparkSQLとSparkRの利用
  27. 27. © 2016 IBM Corporation27 Appendix DataPaloozaを日本でもやります!
  28. 28. © 2016 IBM Corporation28 ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。 それらは情報提供の目的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、 またそのような結果を生むものでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努力しましたが 「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使用によ って、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内 容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェ アの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果を生むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であ ることを暗示するものではありません。本講演資料で言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づい てIBM独自の決定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約するこ とを意図したものではありません。本講演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、または その他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。 パフォーマン スは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループッ トやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理さ れるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと 同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例と して示されたものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。 現時点での IBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 Apache Hadoop、Hadoop、Apache Spark、Spark、Apache Kafka、Kafka、 Apache、は、Apache Software Foundationの米国およびその他の国 における登録商標、または商標です。

×