Submit Search
Upload
Spark graph framesとopencypherによる分散グラフ処理の最新動向
•
7 likes
•
3,765 views
N
Nagato Kasaki
Follow
DMM.Study Night グラフ勉強会 発表資料 https://atnd.org/events/74845
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 45
Download now
Download to read offline
Recommended
Spark GraphFrames のススメ
Spark GraphFrames のススメ
Nagato Kasaki
Sparkで始めるお手軽グラフデータ分析
Sparkで始めるお手軽グラフデータ分析
Nagato Kasaki
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
Nagato Kasaki
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Nagato Kasaki
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
Kazuaki Ishizaki
Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみた
Recruit Technologies
Recommended
Spark GraphFrames のススメ
Spark GraphFrames のススメ
Nagato Kasaki
Sparkで始めるお手軽グラフデータ分析
Sparkで始めるお手軽グラフデータ分析
Nagato Kasaki
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
Nagato Kasaki
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Nagato Kasaki
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
Kazuaki Ishizaki
Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみた
Recruit Technologies
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
Yu Ishikawa
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Sotaro Kimura
Deep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance Tuning
Takuya UESHIN
hscj2019_ishizaki_public
hscj2019_ishizaki_public
Kazuaki Ishizaki
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
Takeshi Yamamuro
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
Takuya UESHIN
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Hadoop / Spark Conference Japan
Sparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみた
fujita_s
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
Sotaro Kimura
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
Gw Liu
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
20150513 legobease
20150513 legobease
Takeshi Yamamuro
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜
x1 ichi
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
Ryuji Tamagawa
DMM.comにおけるビッグデータ処理のためのSQL活用術
DMM.comにおけるビッグデータ処理のためのSQL活用術
DMM.com
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
オラクルエンジニア通信
More Related Content
What's hot
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
Yu Ishikawa
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Sotaro Kimura
Deep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance Tuning
Takuya UESHIN
hscj2019_ishizaki_public
hscj2019_ishizaki_public
Kazuaki Ishizaki
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
Takeshi Yamamuro
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
Takuya UESHIN
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Hadoop / Spark Conference Japan
Sparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみた
fujita_s
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
YusukeKuramata
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
Sotaro Kimura
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
Gw Liu
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
20150513 legobease
20150513 legobease
Takeshi Yamamuro
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜
x1 ichi
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
Ryuji Tamagawa
What's hot
(20)
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
スキーマ 付き 分散ストリーム処理 を実行可能な FlinkSQLClient の紹介
Deep Dive into Spark SQL with Advanced Performance Tuning
Deep Dive into Spark SQL with Advanced Performance Tuning
hscj2019_ishizaki_public
hscj2019_ishizaki_public
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Project Tungsten Bringing Spark Closer to Bare Meta (Hadoop / Spark Conferenc...
Sparkでレコメンドエンジンを作ってみた
Sparkでレコメンドエンジンを作ってみた
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
20150513 legobease
20150513 legobease
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
Viewers also liked
DMM.comにおけるビッグデータ処理のためのSQL活用術
DMM.comにおけるビッグデータ処理のためのSQL活用術
DMM.com
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
オラクルエンジニア通信
社内向けに恋愛ゲーム作ってみた
社内向けに恋愛ゲーム作ってみた
DMM.com
Data Scientist Workbench 入門
Data Scientist Workbench 入門
soh kaijima
Big datauniversity
Big datauniversity
Tanaka Yuichi
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Nagato Kasaki
WebDB Forum 2016 gunosy
WebDB Forum 2016 gunosy
Hiroaki Kudo
Which Is Deeper - Comparison Of Deep Learning Frameworks On Spark
Which Is Deeper - Comparison Of Deep Learning Frameworks On Spark
Spark Summit
エンジニアが 家事を手伝ったら こうなった
エンジニアが 家事を手伝ったら こうなった
ishikawa304
DataStax Enterprise BBL
DataStax Enterprise BBL
Victor Coustenoble
Hadoopによる大規模分散データ処理
Hadoopによる大規模分散データ処理
Yoji Kiyota
Cloud OSの進化を考える
Cloud OSの進化を考える
maruyama097
Time Series Data with Apache Cassandra
Time Series Data with Apache Cassandra
Eric Evans
JVM and OS Tuning for accelerating Spark application
JVM and OS Tuning for accelerating Spark application
Tatsuhiro Chiba
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
オラクルエンジニア通信
ニューラル・ネットワークと技術革新の展望
ニューラル・ネットワークと技術革新の展望
maruyama097
Blueprintsについて
Blueprintsについて
Tetsuro Nagae
ContainerとName Space Isolation
ContainerとName Space Isolation
maruyama097
大規模グラフデータ処理
大規模グラフデータ処理
maruyama097
Hadoop / Spark Conference Japan 2016 ご挨拶・Hadoopを取り巻く環境
Hadoop / Spark Conference Japan 2016 ご挨拶・Hadoopを取り巻く環境
Hadoop / Spark Conference Japan
Viewers also liked
(20)
DMM.comにおけるビッグデータ処理のためのSQL活用術
DMM.comにおけるビッグデータ処理のためのSQL活用術
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
Oracle Labs 発! Parallel Graph AnalytiX(PGX)
社内向けに恋愛ゲーム作ってみた
社内向けに恋愛ゲーム作ってみた
Data Scientist Workbench 入門
Data Scientist Workbench 入門
Big datauniversity
Big datauniversity
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
WebDB Forum 2016 gunosy
WebDB Forum 2016 gunosy
Which Is Deeper - Comparison Of Deep Learning Frameworks On Spark
Which Is Deeper - Comparison Of Deep Learning Frameworks On Spark
エンジニアが 家事を手伝ったら こうなった
エンジニアが 家事を手伝ったら こうなった
DataStax Enterprise BBL
DataStax Enterprise BBL
Hadoopによる大規模分散データ処理
Hadoopによる大規模分散データ処理
Cloud OSの進化を考える
Cloud OSの進化を考える
Time Series Data with Apache Cassandra
Time Series Data with Apache Cassandra
JVM and OS Tuning for accelerating Spark application
JVM and OS Tuning for accelerating Spark application
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
Hadoop Conference Japan 2016 LT資料 グラフデータベース事始め
ニューラル・ネットワークと技術革新の展望
ニューラル・ネットワークと技術革新の展望
Blueprintsについて
Blueprintsについて
ContainerとName Space Isolation
ContainerとName Space Isolation
大規模グラフデータ処理
大規模グラフデータ処理
Hadoop / Spark Conference Japan 2016 ご挨拶・Hadoopを取り巻く環境
Hadoop / Spark Conference Japan 2016 ご挨拶・Hadoopを取り巻く環境
Similar to Spark graph framesとopencypherによる分散グラフ処理の最新動向
Apache Sparkやってみたところ
Apache Sparkやってみたところ
Tatsunori Nishikori
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
Grailsのススメ(仮)
Grailsのススメ(仮)
Tsuyoshi Yamamoto
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析
Tanaka Yuichi
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
Recruit Technologies
GraphQLはどんな時に使うか
GraphQLはどんな時に使うか
Yutaka Tachibana
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
The Japan DataScientist Society
Apache Spark + Arrow
Apache Spark + Arrow
Takeshi Yamamuro
20160728 hyperscale #03
20160728 hyperscale #03
ManaMurakami1
SparkTokyo2019NovIshizaki
SparkTokyo2019NovIshizaki
Kazuaki Ishizaki
Hadoop事始め
Hadoop事始め
You&I
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
Hideo Harada
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
Hayashi Yuichi
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Katsuhiro Morishita
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
LINE Corp.
Heroku で作る スケーラブルな PHP アプリケーション
Heroku で作る スケーラブルな PHP アプリケーション
Masashi Shinbara
ネタじゃないScala.js
ネタじゃないScala.js
takezoe
さくらのインフラコード
さくらのインフラコード
Yukihiko SAWANOBORI
Similar to Spark graph framesとopencypherによる分散グラフ処理の最新動向
(20)
Apache Sparkやってみたところ
Apache Sparkやってみたところ
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Grailsのススメ(仮)
Grailsのススメ(仮)
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
GraphQLはどんな時に使うか
GraphQLはどんな時に使うか
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
データ分析に必要なスキルをつけるためのツール~Jupyter notebook、r連携、機械学習からsparkまで~
Apache Spark + Arrow
Apache Spark + Arrow
20160728 hyperscale #03
20160728 hyperscale #03
SparkTokyo2019NovIshizaki
SparkTokyo2019NovIshizaki
Hadoop事始め
Hadoop事始め
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
Heroku で作る スケーラブルな PHP アプリケーション
Heroku で作る スケーラブルな PHP アプリケーション
ネタじゃないScala.js
ネタじゃないScala.js
さくらのインフラコード
さくらのインフラコード
Spark graph framesとopencypherによる分散グラフ処理の最新動向
1.
/ 45 Spark GraphFramesとopenCypher による分散グラフ処理の最新動向 ビッグデータ部
加嵜長門 2016年3月8日
2.
/ 45 自己紹介 • 加嵜
長門 • 2014年4月~ DMM.comラボ • Hadoop基盤構築 • Spark MLlib, GraphXを用いたレコメンド開発 • 好きな言語 • SQL • Cypher 2
3.
/ 45 GraphFramesとは? • GraphFrames •
http://graphframes.github.io/ • 分散グラフ処理のための Apache Spark パッケージ • Spark GraphX と DataFrames (SparkSQL) の統合 • Databricksが2016年3月3日にリリース 3
4.
/ 45 GraphFramesとは? • Spark
Summit East 2016 • 2016/2/18 4 https://spark-summit.org/east-2016/events/graphframes-graph-queries-in-spark-sql/
5.
/ 45 GraphFramesとは? • Spark
package • 2016/2/25 5 http://spark-packages.org/package/graphframes/graphframes
6.
/ 45 GraphFramesとは? • Introducing
GraphFrames • 2016/3/3 6 https://databricks.com/blog/2016/03/03/introducing-graphframes.html
7.
/ 45 GraphFramesの特徴 • openCypherによるグラフ検索 •
Pregelを用いたグラフ処理 • 分散処理 7
8.
/ 45 GraphFramesの特徴 • openCypherによるグラフ検索 •
Pregelを用いたグラフ処理 • 分散処理 8
9.
/ 45 openCypherによるグラフ検索 • グラフ分析とグラフ検索 9 引用:http://www.slideshare.net/SparkSummit/graphframes-graph-queries-in-spark-sql-by-ankur-dave
10.
/ 45 openCypher • オープンソースのグラフクエリ言語 •
Neo4jのCypherから派生 • SQLに似た宣言的な記述が可能 10 MATCH (cypher:QueryLanguage)-[:QUERIES]->(graphs) MATCH (cypher)<-[:USES]-(u:User) WHERE u.name IN [‘Oracle’, ‘Apache Spark’, ‘Tableau’, ‘Structr’] MATCH (openCypher)-[:MAKES_AVAILABLE]->(cypher) RETURN cypher.attributes ----------- [‘awesome’,…] http://www.opencypher.org/
11.
/ 45 GraphFramesを試す • 使い方 •
Sparkと同様、Scala, Java, Python, R向けのAPIを使用可能 • インストール方法 • Spark Shell でインタラクティブに試す • Build.sbt を利用 11
12.
/ 45 GraphFramesを試す • Spark
Shell でインタラクティブに試す • Spark 1.4以上に対応 • DataFramesの利点を活かすなら最新版を推奨 12 # spark をダウンロード $ wget http://ftp.jaist.ac.jp/pub/apache/spark/spark-1.6.0/spark-1.6.0-bin-hadoop2.6.tgz $ tar xzvf spark-1.6.0-bin-hadoop2.6.tgz # graphframesパッケージを指定してspark-shellを起動 $ spark-1.6.0-bin-hadoop2.6/bin/spark-shell --packages graphframes:graphframes:0.1.0-spark1.6
13.
/ 45 GraphFramesを試す • Build.sbt
を利用 13 resolvers += "Spark Packages Repo" at "http://dl.bintray.com/spark-packages/maven" libraryDependencies ++= Seq( "org.apache.spark" %% "spark-core" % "1.6.0", "org.apache.spark" %% "spark-sql" % "1.6.0", "org.apache.spark" %% "spark-graphx" % "1.6.0", "graphframes" % "graphframes" % "0.1.0-spark1.6“ )
14.
/ 45 GraphFrames –
アイテムレコメンドの実行例 14 // graphframesパッケージのインポート scala> import org.graphframes._ import org.graphframes._ // Vertex(頂点)となるDataFrameを作成 scala> val v = sqlContext.createDataFrame(List( | (0L, "user", "u1"), | (1L, "user", "u2"), | (2L, "item", "i1"), | (3L, "item", "i2"), | (4L, "item", "i3"), | (5L, "item", "i4") | )).toDF("id", "type", "name") v: org.apache.spark.sql.DataFrame = [id: bigint, type: string, name: string] u1 u2 i1 i2 i3 i4 ユーザ アイテム
15.
/ 45 GraphFrames –
アイテムレコメンドの実行例 15 // Edge(辺)となるDataFrameを作成 scala> val e = sqlContext.createDataFrame(List( | (0L, 2L, "purchase"), | (0L, 3L, "purchase"), | (0L, 4L, "purchase"), | (1L, 3L, "purchase"), | (1L, 4L, "purchase"), | (1L, 5L, "purchase") | )).toDF("src", "dst", "type") e: org.apache.spark.sql.DataFrame = [src: bigint, dst: bigint, type: string] // GraphFrameを作成 scala> val g = GraphFrame(v, e) g: org.graphframes.GraphFrame = GraphFrame(v:[id: bigint, attr: string, gender: string], e:[src: bigint, dst: bigint, relationship: string]) u1 u2 i1 i2 i3 i4 購入ログ
16.
/ 45 GraphFrames –
アイテムレコメンドの実行例 16 // レコメンドアイテムの問い合わせ例 scala> g.find( | " (user1)-[]->(item1); (user2)-[]->(item1);" + | " (user2)-[]->(item2); !(user1)-[]->(item2)" | ).groupBy( | "user1.name", "item2.name" | ).count().show() name name count u1 i4 2 u2 i1 2 u1 u2 i1 i2 i3 i4 共通の商品を 購入したユーザ まだ購入していないアイテムをレコメンド
17.
/ 45 GraphFramesの特徴 • openCypherによるグラフ検索 •
Pregelを用いたグラフ処理 • 分散処理 17
18.
/ 45 BSP, Pregel,
Graph 18 Pregel BSP Apache Hama グラフ特化 開発 実装 実装 活用 継承 影響 Open Graph Graph Search Knowledge Graph
19.
/ 45 バルク同期並列(BSP) 19
20.
/ 45 バルク同期並列(BSP) 20 Concurrent computation
Communication Barrier synchronisation superstep
21.
/ 45 バルク同期並列(BSP) 21 Concurrent computation
Communication Barrier synchronisation superstep
22.
/ 45 Question: PregelでAC間の距離を図る方法 22 A
B C a𝑏 + 𝑏𝑐 a𝑏 𝑏𝑐
23.
/ 45 Question: PregelでAC間の距離を図る方法 23 A
B CB a𝑏 𝑏𝑐 a𝑏 + 𝑏𝑐 ?
24.
/ 45 A1. Iter=1,
send message 24 A B C a𝑏 𝑏𝑐 a𝑏
25.
/ 45 A1. Iter=1,
vertex program 25 A B C a𝑏 𝑏𝑐 a𝑏
26.
/ 45 A1. Iter=2,
send message 26 A B C a𝑏 𝑏𝑐 a𝑏 A B C a𝑏 𝑏𝑐 a𝑏 a𝑏 + 𝑏𝑐
27.
/ 45 A1. Iter=2,
vertex program 27 A B C a𝑏 𝑏𝑐 a𝑏 A B C a𝑏 𝑏𝑐 a𝑏 a𝑏 + 𝑏𝑐
28.
/ 45 GraphX Pregel
API 28 引用:http://www.slideshare.net/SparkSummit/graphframes-graph-queries-in-spark-sql-by-ankur-dave
29.
/ 45 GraphFramesの特徴 • Pregelを用いたグラフ処理 •
openCypherによるグラフ検索 • 分散処理 29
30.
/ 45 GraphFrames (GraphX)
のデータ構造 • 分散グラフ 30 http://spark.apache.org/docs/latest/graphx-programming-guide.html
31.
/ 45 GraphFrames (GraphX)
のデータ構造 • 分散グラフ 31 http://spark.apache.org/docs/latest/graphx-programming-guide.html
32.
/ 45 Partition Strategy •
次数 10000 • Partition数 100 32 Vn V1 V2 V10000 ・ ・ ・ Partition 1 Partition 2 Partition 100 ・ ・ ・ ?
33.
/ 45 Partition Strategy •
RandomVertexCut • Hash(src, dst) 33 Vn V1 V2 V10000 ・ ・ ・ Partition 1 Partition 2 Partition 100 ・ ・ ・ Vn V1 Vn V2 Vn V10000 1 Partition あたり 平均 100 Edges I/O効率が悪い
34.
/ 45 Partition Strategy •
EdgePartition1D • Hash(src) 34 Vn V1 V2 V10000 ・ ・ ・ Partition 1 Partition 2 Partition 100 ・ ・ ・ Vn V1 Vn V2 Vn V10000 srcに対して Partitionが決まる I/Oが発生する Partitionを限定 できる
35.
/ 45 Partition Strategy •
EdgePartition1D • Hash(src) 35 Vn V1 V2 V10000 ・ ・ ・ Partition 1 Partition 2 Partition 100 ・ ・ ・ srcに対して Partitionが決まる Edge の順方向 にしか意味が無い Vn V1 Vn V2 Vn V10000
36.
/ 45 Partition Strategy •
EdgePartition2D 36 Vn V1 V2 V10000 ・ ・ ・ * * *Vn V1 V2 V10000 Partition 1 ・・・ 10/100 Partitions Partition 100
37.
/ 45 Partition Strategy •
EdgePartition2D 37 * * * Vn V1 V2 V10000 Vn V1 V10000 V2 ・ ・ ・ ・ ・ ・ 10/100 Partitions
38.
/ 45 Partition Strategy •
EdgePartition2D 38 * * * Vn V1 V2 V10000 Vn V1 V10000 V2 ・ ・ ・ ・ ・ ・ Vi Vj ・ ・ ・ Vk Vn V1 V2 V10000・・・ 高々 20/100 Partitions =20% 200/10000 なら 2%
39.
/ 45 GraphFrames vs.
Neo4j 39 引用:http://www.slideshare.net/SparkSummit/graphframes-graph-queries-in-spark-sql-by-ankur-dave
40.
/ 45 GraphFrames ×
Spark 2.0 40 引用: http://www.slideshare.net/databricks/2016-spark-summit-east-keynote-matei-zaharia
41.
/ 45 参考文献 • 複雑ネットワーク―基礎から応用まで •
増田 直紀、今野 紀雄 • http://www.amazon.co.jp/dp/4764903636 41
42.
/ 45 参考文献 • Cypherクエリー言語の事例で学ぶグラフデータベースNeo4j •
李 昌桓 • http://www.amazon.co.jp/dp/4802090498 42
43.
/ 45 参考文献 • Neo4j
Webinar • http://neo4j.com/webinars/ • Bootstrapping Recommendations with Neo4j • Fraud Detection with Neo4j • Natural Language Processing with Graphs • etc. 43
44.
/ 45 参考文献 • Apache
Spark Graph Processing • Rindra Ramamonjison • http://www.amazon.co.jp/dp/1784391808 44
45.
/ 45 参考文献 • Graph
Mining: Laws, Tools, and Case Studies • Deepayan Chakrabarti, Christos Faloutsos • http://www.amazon.com/dp/B00AF2CVE6 45
Download now