Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
NK
Uploaded by
Nagato Kasaki
4,762 views
Sparkで始めるお手軽グラフデータ分析
『詳解 Apache Spark』出版記念イベント LT資料 http://connpass.com/event/30375/
Technology
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Downloaded 41 times
1
/ 33
2
/ 33
3
/ 33
4
/ 33
5
/ 33
6
/ 33
7
/ 33
8
/ 33
9
/ 33
10
/ 33
11
/ 33
12
/ 33
13
/ 33
14
/ 33
15
/ 33
16
/ 33
17
/ 33
18
/ 33
19
/ 33
20
/ 33
21
/ 33
22
/ 33
23
/ 33
24
/ 33
25
/ 33
26
/ 33
27
/ 33
28
/ 33
29
/ 33
30
/ 33
31
/ 33
32
/ 33
33
/ 33
More Related Content
PDF
Spark GraphFrames のススメ
by
Nagato Kasaki
PDF
Spark graph framesとopencypherによる分散グラフ処理の最新動向
by
Nagato Kasaki
PPT
Blueprintsについて
by
Tetsuro Nagae
PDF
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
by
Tetsuo Yamabe
PDF
広告配信現場で使うSpark機械学習
by
x1 ichi
PPTX
2014 11-20 Machine Learning with Apache Spark 勉強会資料
by
Recruit Technologies
PDF
Oracle Cloud Developers Meetup@東京
by
tuchimur
PPTX
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
by
Yu Ishikawa
Spark GraphFrames のススメ
by
Nagato Kasaki
Spark graph framesとopencypherによる分散グラフ処理の最新動向
by
Nagato Kasaki
Blueprintsについて
by
Tetsuro Nagae
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
by
Tetsuo Yamabe
広告配信現場で使うSpark機械学習
by
x1 ichi
2014 11-20 Machine Learning with Apache Spark 勉強会資料
by
Recruit Technologies
Oracle Cloud Developers Meetup@東京
by
tuchimur
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
by
Yu Ishikawa
What's hot
PDF
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
by
Hadoop / Spark Conference Japan
PDF
20171212 titech lecture_ishizaki_public
by
Kazuaki Ishizaki
PDF
20191211_Apache_Arrow_Meetup_Tokyo
by
Kohei KaiGai
PDF
20160121 データサイエンティスト協会 木曜セミナー #5
by
Koichiro Sasaki
PDF
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
by
Yu Ishikawa
PPTX
R超入門機械学習をはじめよう
by
幹雄 小川
PPTX
Parquetはカラムナなのか?
by
Yohei Azekatsu
PPTX
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
by
Holden Karau
PDF
KMLとR言語
by
文彦 牧山
PDF
MapReduce入門
by
Satoshi Noto
PDF
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
by
MapR Technologies Japan
PDF
Learning spaerk chapter03
by
Akimitsu Takagi
PPTX
データサイエンティスト必見!M-1グランプリ
by
Satoshi Kitajima
PDF
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
by
Takuya UESHIN
PPTX
A Benchmark Test on Presto, Spark Sql and Hive on Tez
by
Gw Liu
PDF
Inside of Asakusa DSL
by
Suguru ARAKAWA
PDF
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
by
Yu Ishikawa
PDF
なぜリアクティブは重要か #ScalaMatsuri
by
Yuta Okamoto
PDF
20200424_Writable_Arrow_Fdw
by
Kohei KaiGai
PDF
20180109 titech lecture_ishizaki_public
by
Kazuaki Ishizaki
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
by
Hadoop / Spark Conference Japan
20171212 titech lecture_ishizaki_public
by
Kazuaki Ishizaki
20191211_Apache_Arrow_Meetup_Tokyo
by
Kohei KaiGai
20160121 データサイエンティスト協会 木曜セミナー #5
by
Koichiro Sasaki
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
by
Yu Ishikawa
R超入門機械学習をはじめよう
by
幹雄 小川
Parquetはカラムナなのか?
by
Yohei Azekatsu
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
by
Holden Karau
KMLとR言語
by
文彦 牧山
MapReduce入門
by
Satoshi Noto
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
by
MapR Technologies Japan
Learning spaerk chapter03
by
Akimitsu Takagi
データサイエンティスト必見!M-1グランプリ
by
Satoshi Kitajima
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
by
Takuya UESHIN
A Benchmark Test on Presto, Spark Sql and Hive on Tez
by
Gw Liu
Inside of Asakusa DSL
by
Suguru ARAKAWA
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
by
Yu Ishikawa
なぜリアクティブは重要か #ScalaMatsuri
by
Yuta Okamoto
20200424_Writable_Arrow_Fdw
by
Kohei KaiGai
20180109 titech lecture_ishizaki_public
by
Kazuaki Ishizaki
Similar to Sparkで始めるお手軽グラフデータ分析
PPTX
分散グラフデータベース DataStax Enterprise Graph
by
Yuki Morishita
PPTX
Bluemixを使ったTwitter分析
by
Tanaka Yuichi
PDF
社会ネットワーク分析第7回
by
Satoru Mikami
PDF
Spark GraphXについて @Spark Meetup 2014/9/8
by
鉄平 土佐
PDF
大規模ネットワークの性質と先端グラフアルゴリズム
by
Takuya Akiba
PPTX
Pysparkで始めるデータ分析
by
Tanaka Yuichi
PPTX
Apache Sparkを使った感情極性分析
by
Tanaka Yuichi
PDF
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
by
鉄平 土佐
PPTX
Spark GraphX で始めるグラフ解析
by
Yosuke Mizutani
PDF
GraphX によるグラフ分析処理の実例と入門
by
鉄平 土佐
PDF
NIPS2013読み会: Scalable kernels for graphs with continuous attributes
by
Yasuo Tabei
PPTX
DataStax Enterpriseによる大規模グラフ解析
by
Yuki Morishita
PPTX
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
by
Tanaka Yuichi
PDF
Big Data University Tokyo Meetup #6 (mlwith_spark) 配布資料
by
Atsushi Tsuchiya
PDF
大規模グラフアルゴリズムの最先端
by
Takuya Akiba
PDF
グラフデータ分析 入門編
by
順也 山口
PDF
ネットワークマイニング(グラフ構造分析)
by
Katsuhiro Takata
PDF
Scalaでプログラムを作りました
by
Tomoharu ASAMI
PDF
大規模ネットワーク分析 篠田
by
Kosuke Shinoda
PDF
DataStax EnterpriseでApache Tinkerpop入門
by
Yuki Morishita
分散グラフデータベース DataStax Enterprise Graph
by
Yuki Morishita
Bluemixを使ったTwitter分析
by
Tanaka Yuichi
社会ネットワーク分析第7回
by
Satoru Mikami
Spark GraphXについて @Spark Meetup 2014/9/8
by
鉄平 土佐
大規模ネットワークの性質と先端グラフアルゴリズム
by
Takuya Akiba
Pysparkで始めるデータ分析
by
Tanaka Yuichi
Apache Sparkを使った感情極性分析
by
Tanaka Yuichi
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
by
鉄平 土佐
Spark GraphX で始めるグラフ解析
by
Yosuke Mizutani
GraphX によるグラフ分析処理の実例と入門
by
鉄平 土佐
NIPS2013読み会: Scalable kernels for graphs with continuous attributes
by
Yasuo Tabei
DataStax Enterpriseによる大規模グラフ解析
by
Yuki Morishita
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
by
Tanaka Yuichi
Big Data University Tokyo Meetup #6 (mlwith_spark) 配布資料
by
Atsushi Tsuchiya
大規模グラフアルゴリズムの最先端
by
Takuya Akiba
グラフデータ分析 入門編
by
順也 山口
ネットワークマイニング(グラフ構造分析)
by
Katsuhiro Takata
Scalaでプログラムを作りました
by
Tomoharu ASAMI
大規模ネットワーク分析 篠田
by
Kosuke Shinoda
DataStax EnterpriseでApache Tinkerpop入門
by
Yuki Morishita
More from Nagato Kasaki
PDF
20190712 polkadot japan meetup
by
Nagato Kasaki
PDF
Pact言語によるセキュアなスマートコントラクト開発
by
Nagato Kasaki
PDF
暗号通貨輪読会 #20 bloXroute
by
Nagato Kasaki
PDF
ゼロから始めるSparkSQL徹底活用!
by
Nagato Kasaki
PDF
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
by
Nagato Kasaki
PDF
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
by
Nagato Kasaki
20190712 polkadot japan meetup
by
Nagato Kasaki
Pact言語によるセキュアなスマートコントラクト開発
by
Nagato Kasaki
暗号通貨輪読会 #20 bloXroute
by
Nagato Kasaki
ゼロから始めるSparkSQL徹底活用!
by
Nagato Kasaki
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
by
Nagato Kasaki
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
by
Nagato Kasaki
Recently uploaded
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
Sparkで始めるお手軽グラフデータ分析
1.
/ 33 Sparkで始める お手軽グラフデータ分析 ビッグデータ部 加嵜長門 2016年5月11日 『詳解Apache
Spark』出版記念
2.
/ 33 自己紹介 • 加嵜
長門 • 2014年4月~ DMM.comラボ • Hadoop基盤構築 • Spark MLlib, GraphXを用いたレコメンド開発 • 『詳解 Apache Spark』では「8章 GraphX」を執筆 2
3.
/ 33 Spark GraphX
周りの話題 • Hadoop/Spark Conference Japan 2016 • 2016年2月8日 • キーノートでのアンケート結果 • GraphX… 3 Spark Conference Japan 開催にあたって(Hadoop / Spark Conference Japan 2016 キーノート講演資料) http://www.slideshare.net/hadoopconf/spark-conference-japan2016-keynote-saruta
4.
/ 33 Spark GraphX
周りの話題 • GraphFramesの登場 • Databricksが2016年3月3日にリリース • http://graphframes.github.io/ • Spark GraphX と DataFrames (SparkSQL) の統合 • 利用数の多いDataFramesを用いて、手軽にグラフデータが扱える • 事例も増えそう・・・? 4
5.
/ 33 そもそもグラフデータとは • “つながり”を表現するデータ構造 •
cf. ER図 5 entity entityrelation node/vertex relation/edge attribute attribute
6.
/ 33 グラフデータの具体例 • ソーシャルグラフ •
人と人とのつながり 6 ASSIOMA:オルタナティブ・ブログ: 「あの人検索スパイシー」の「相関図」 http://blogs.itmedia.co.jp/assioma/2010/08/kdditwitter-689.html
7.
/ 33 グラフデータの具体例 • 路線図 •
地図グラフ • 駅と駅のつながり(路線) 7 goo地図 - 首都圏JRの路線図 http://map.goo.ne.jp/station/map/tokyo_jr/
8.
/ 33 グラフデータの具体例 • インターネット •
Webグラフ • ページとページのリンク 8 HOME Contents Purchase Contact
9.
/ 33 グラフデータの具体例 • 家系図 •
親子のつながり 9 家系図作成本舗 -織田信長の家系図 http://www.e-keizu.com/kakeizu/nobunaga.html
10.
/ 33 グラフ以外のデータ構造 • 配列 •
ベクトル、行列 • 連想配列 • オブジェクト • リスト • 関係(リレーション) • etc… 10 1 2 3 4 5 6 7 8 9 { a1: v1 a2: v2 } A B C
11.
/ 33 それぞれのデータ構造を用いたモデリング • 友人関係の表現方法 •
無数にある 11 A B C A B C A 0 1 1 B 0 0 1 C 0 0 0 A B C グラフ構造 隣接行列
12.
/ 33 よくある質問 • 「それってグラフじゃないとできないの?」 →
多くの場合は他の選択肢もある • RDB、行列、etc. • さまざまなデータ構造や分析手法を活用して、多角的な視点を 持つことが重要 12
13.
/ 33 グラフの活用例 • レコメンド •
趣味が合うユーザとの つながり • 関心のある商品との つながり 13 技術評論社: Hadoopでレコメンドシステムを作ろう http://gihyo.jp/dev/serial/01/recommend_hadoop/0001
14.
/ 33 グラフの活用例 • マーケティング •
ネットワークビジネス • バイラルマーケティング • インフルエンサーマーケティング • 口コミを使ったマーケティング • 影響力の強いユーザの抽出 • クラスター分析 14 マーケティング用語集 - インフルエンサー・マーケティングとは http://www.spi-consultants.com/ja/terms/archives/influence-marketing.php
15.
/ 33 グラフの活用例 • 不正検知 •
偽装保険金詐取 • 運転手 • 乗客 • 弁護士 • 医者 15 Linkurious - Whiplash for cash : using graphs for fraud detection https://linkurio.us/whiplash-for-cash-using-graphs-for-fraud-detection/
16.
/ 33 グラフの活用例 • 不正検知 •
偽装保険金詐取 • 少人数で何度も事故に 巻き込まれている ケースを抽出 16 Linkurious - Whiplash for cash : using graphs for fraud detection https://linkurio.us/whiplash-for-cash-using-graphs-for-fraud-detection/
17.
/ 33 グラフの活用例 • 不正検知 •
クレジットカード詐欺 • 少数の人数で、住所や 電話番号を使い回している ケースを抽出 17 Improving First-Party Bank Fraud Detection with Graph Databases http://neo4j.com/blog/first-party-bank-fraud-detection-graph-databases/
18.
/ 33 グラフの活用例 • 「パナマ文書」解析 •
多くの会社(ペーパーカンパニーを含む)を流れるお金の流れを分析 18 Medium - 「パナマ文書」解析の技術的側面 https://medium.com/@c_z/パナマ文書-解析の技術的側面-d10201bbe195#.nvxvolgn8
19.
/ 33 グラフ処理系プロダクト • グラフDB •
グラフデータを構造化 • グラフに対してクエリを投げる • 例) Neo4j, Titan • グラフ処理 • グラフ処理の流れを記述 • 処理系に対してグラフデータを投げる • 例) Spark GraphX, GraphLab 19 グラフデータ グラフ処理 クエリ クエリ クエリ グラフ グラフ グラフ
20.
/ 33 Spark GraphXのメリット •
vs. グラフDB • 分散処理による高スループット • 耐障害性 • vs. 他のグラフ処理系 • グラフに特化しない汎用的なデータ構造 • 表形式やベクトルとシームレスに結合できる 20 https://amplab.github.io/graphx/
21.
/ 33 Spark GraphX
– グラフの作成 • RDDから作成 • Generatorで自動生成 21 scala> val graph = Graph(nodes, relations) scala> GraphGenerators.logNormalGraph(sc, numVertices = 5, mu = 4.0, sigma = 1.3) scala> GraphGenerators.rmatGraph(sc, requestedNumVertices = 10, numEdges = 10)
22.
/ 33 Spark GraphX
– グラフ分析 • グラフの特徴量を取得 22 // 位数(頂点の数)を取得 scala> graph.numVertices res0: Long = 3 // サイズ(辺の数)を取得 scala> graph.numEdges res1: Long = 3 // 各頂点の次数(接する辺の数)を取得 scala> graph.degrees.collect.foreach(println(_)) (2,2) (1,2) (3,2)
23.
/ 33 GraphFrames –
グラフの作成 23 // 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 アイテム
24.
/ 33 GraphFrames –
グラフの作成 24 // 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 購入ログ
25.
/ 33 GraphFrames –
アイテムレコメンドの実行例 25 // レコメンドアイテムの問い合わせ例 scala> g.find( | " (a)-[]->(x); (b)-[]->(x);" + | " (b)-[]->(y); !(a)-[]->(y)" | ).groupBy( | "a.name", "y.name" | ).count().show() +----+----+-----+ |name|name|count| +----+----+-----+ | u1| i4| 2| | u2| i1| 2| +----+----+-----+ u1 u2 i1 i2 i3 i4 共通の商品を 購入したユーザ まだ購入していないアイテムをレコメンド (b) (y) (a) (x)
26.
/ 33 GraphFrames –
サンプルグラフの利用 (1) 26 // スターグラフを作成 scala> val star = examples.Graphs.star(5) // Tripletsを表示 scala> star.triplets.show() +------------+----------+--------+ | edge| src| dst| +------------+----------+--------+ |[1,0,edge-1]|[1,node-1]|[0,root]| |[2,0,edge-2]|[2,node-2]|[0,root]| |[3,0,edge-3]|[3,node-3]|[0,root]| |[4,0,edge-4]|[4,node-4]|[0,root]| |[5,0,edge-5]|[5,node-5]|[0,root]| +------------+----------+--------+ 0 1 2 3 4 5 node-1 node-2 node-3 node-4 node-5 root edge-1 edge-2 edge-3 edge-4 edge-5
27.
/ 33 GraphFrames –
PageRankの実行例 27 // PageRankを計算 scala> val pr = g.pageRank.resetProbability(0.1).tol(0.01).run() // PageRankのスコアを表示 scala> pr.vertices.show() +---+-------+--------+ | id|v_attr1|pagerank| +---+-------+--------+ | 0| root| 0.55| | 1| node-1| 0.1| | 2| node-2| 0.1| | 3| node-3| 0.1| | 4| node-4| 0.1| | 5| node-5| 0.1| +---+-------+--------+ 0 1 2 3 4 5 0.1 0.1 0.1 0.1 0.1 0.55
28.
/ 33 GraphFrames –
サンプルグラフの利用 (2) 28 // 友達関係のサンプルグラフを作成 scala> val friends = examples.Graphs.friends // Tripletsを表示 scala> friends.triplets.show() +------------+--------------+--------------+ | edge| src| dst| +------------+--------------+--------------+ |[a,b,friend]| [a,Alice,34]| [b,Bob,36]| |[b,c,follow]| [b,Bob,36]|[c,Charlie,30]| |[c,b,follow]|[c,Charlie,30]| [b,Bob,36]| |[f,c,follow]| [f,Fanny,36]|[c,Charlie,30]| |[e,f,follow]| [e,Esther,32]| [f,Fanny,36]| |[e,d,friend]| [e,Esther,32]| [d,David,29]| |[d,a,friend]| [d,David,29]| [a,Alice,34]| |[a,e,friend]| [a,Alice,34]| [e,Esther,32]| +------------+--------------+--------------+ a b c de f g Alice, 34 Bob, 36 Charlie, 30 Fanny, 36 Esther, 32 David, 29 Gabby, 60 friend friend friend follow follow follow friend
29.
/ 33 a GraphFrames –
最短距離を計算 29 // すべてのユーザからユーザ “a” までの最短距離を計算 scala> val d1 = friends.shortestPaths.landmarks(Seq("a")).run() // 結果を表示 scala> d1.show() +---+-------+---+-----------+ | id| name|age| distances| +---+-------+---+-----------+ | f| Fanny| 36| Map()| | g| Gabby| 60| Map()| | a| Alice| 34|Map(a -> 0)| | b| Bob| 36| Map()| | c|Charlie| 30| Map()| | d| David| 29|Map(a -> 1)| | e| Esther| 32|Map(a -> 2)| +---+-------+---+-----------+ a b c de f a -> 0 g a -> 2 a -> 1
30.
/ 33 a c GraphFrames –
最短距離を計算 30 // すべてのユーザからユーザ “a”, “c” までの最短距離を計算 scala> val d2 = friends.shortestPaths.landmarks(Seq("a", "c")).run() // 結果を表示 scala> d2.show() +---+-------+---+-------------------+ | id| name|age| distances| +---+-------+---+-------------------+ | f| Fanny| 36| Map(c -> 1)| | g| Gabby| 60| Map()| | a| Alice| 34|Map(a -> 0, c -> 2)| | b| Bob| 36| Map(c -> 1)| | c|Charlie| 30| Map(c -> 0)| | d| David| 29|Map(a -> 1, c -> 3)| | e| Esther| 32|Map(a -> 2, c -> 2)| +---+-------+---+-------------------+ a b c de f g a -> 0 c -> 2 a -> 2 c -> 2 a -> 1 c -> 3 c -> 0 c -> 1 c -> 1
31.
/ 33 a b c d GraphFrames –
最短経路の探索 31 // ユーザ “d”から“c” への最短経路を探索 scala> val path = friends.bfs.fromExpr("id = 'd'").toExpr("id = 'c'").run() // 結果を表示 scala> path.show() +------------+------------+------------+ | from| e0| v1| +------------+------------+------------+ |[d,David,29]|[d,a,friend]|[a,Alice,34]| +------------+------------+------------+ +------------+----------+------------+--------------+ | e1| v2| e2| to| +------------+----------+------------+--------------+ |[a,b,friend]|[b,Bob,36]|[b,c,follow]|[c,Charlie,30]| +------------+----------+------------+--------------+ a b c de f g Alice, 34 Bob, 36 Charlie, 30 David, 29 friend follow friend
32.
/ 33 Spark GraphX
– グラフ処理 • グラフアルゴリズムの適用 32 // triangeCountを取得 scala> val triangleCounts = graph.triangleCount // クラスタ係数を計算 scala> val clusteringCoefficients = | triangleCounts.mapVertices((id, count) => | count.toDouble | ).joinVertices(degrees)((id, count, degree) => { | degree match { | case d if d > 1 => count * 2 / (d * (d - 1)) | case _ => 0.0 | }})
33.
/ 33 Spark GraphX
– グラフ処理 • 続きは・・・ 33 http://gihyo.jp/book/2016/978-4-7741-8124-0
Download