{"id":10827,"date":"2015-07-24T11:47:26","date_gmt":"2015-07-24T02:47:26","guid":{"rendered":"http:\/\/www.creationline.com\/?p=10827"},"modified":"2015-07-26T19:03:56","modified_gmt":"2015-07-26T10:03:56","slug":"spark-graphx%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%9f%e3%82%b0%e3%83%a9%e3%83%95%e5%88%86%e6%9e%90-%e3%82%b5%e3%83%83%e3%82%ab%e3%83%bc%e3%83%81%e3%83%bc%e3%83%a0%e3%81%ae%e3%83%91%e3%83%95%e3%82%a9","status":"publish","type":"post","link":"https:\/\/www.creationline.com\/tech-blog\/others\/spark\/10827","title":{"rendered":"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b"},"content":{"rendered":"<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-10828 alignleft\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx.png\" alt=\"graphx\" width=\"403\" height=\"138\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx.png 864w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx-360x123.png 360w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx-768x263.png 768w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx-225x77.png 225w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" \/><\/a><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/barcapasswork.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone  wp-image-10994\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/barcapasswork.jpg\" alt=\"barcapasswork\" width=\"325\" height=\"181\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/barcapasswork.jpg 600w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/barcapasswork-170x95.jpg 170w\" sizes=\"auto, (max-width: 325px) 100vw, 325px\" \/><\/a><a id=\"top\"><\/a><\/p>\n<h3>1. \u306f\u3058\u3081\u306b\u30fbSpark GraphX \u306e \u3054\u7d39\u4ecb<\/h3>\n<p><span style=\"font-size: 12pt;\">\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\u306e\u6e21\u8fba\u3067\u3059\u3002<a href=\"\/lab\/10315\" target=\"_blank\" rel=\"noopener\">\u524d\u56de\u306e\u8a18\u4e8b<\/a>\u306b\u7d9a\u3051\u3066Spark\u306e<\/span>\u9b45\u529b\u3092\u3054\u7d39\u4ecb\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002Spark\u306b\u306f\u4ee5\u4e0b\u306e\u4e3b\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/spark-components.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"  wp-image-10830 aligncenter\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/spark-components.jpg\" alt=\"spark-components\" width=\"304\" height=\"161\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/spark-components.jpg 313w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/spark-components-179x95.jpg 179w\" sizes=\"auto, (max-width: 304px) 100vw, 304px\" \/><\/a><\/p>\n<p>\u524d\u56de\u306fMLlib\u3092\u7528\u3044\u305f\u30ec\u30b3\u30e1\u30f3\u30c9\u30a8\u30f3\u30b8\u30f3\u306e\u8a66\u4f5c\u3092\u884c\u3044\u307e\u3057\u305f\u304c\u3001\u4eca\u56de\u306fGraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790\u306b\u3064\u3044\u3066\u3001\u6d3b\u7528\u4f8b\u3068\u3068\u3082\u306b\u3054\u7d39\u4ecb\u3044\u305f\u3057\u307e\u3059\u3002<\/p>\n<p>Spark GraphX\u306fApache Spark\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u4e00\u3064\u3067\u3001\u5927\u5bb9\u91cf\u306e\u30b0\u30e9\u30d5\u30c7\u30fc\u30bf\u3092\u4e26\u5217\u5206\u6563\u74b0\u5883\u3067\u51e6\u7406\u3059\u308b\u305f\u3081\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3059\u3002\u307e\u305f\u4ed6\u306eSpark\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u9023\u643a\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u308b\u306e\u3067\u3001ETL\u51e6\u7406\u3084SQL\u51e6\u7406\u3001\u6a5f\u68b0\u5b66\u7fd2\u51e6\u7406\u3068\u5408\u308f\u305b\u5358\u4e00\u306eSpark\u74b0\u5883\u5185\u3067\u3072\u3068\u3064\u306e\u51e6\u7406\u30d5\u30ed\u30fc\u3092\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u30b0\u30e9\u30d5\u30c7\u30fc\u30bf\u3001\u30b0\u30e9\u30d5\u5206\u6790\u306fSQL\u3084\u6a5f\u68b0\u5b66\u7fd2\u3068\u6bd4\u3079\u308b\u3068\u307e\u3060\u4e00\u822c\u7684\u306a\u6280\u8853\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u30ca\u30ec\u30c3\u30b8\u30b0\u30e9\u30d5\u3001\u30de\u30fc\u30b1\u30c6\u30a3\u30f3\u30b0\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3001\u7d4c\u8def\u63a2\u7d22\u3001\u30da\u30fc\u30b8\u30e9\u30f3\u30af\u5206\u6790\u306a\u3069\u7279\u5b9a\u306e\u5206\u91ce\u306b\u5bfe\u3057\u3066\u306f\u975e\u5e38\u306b\u6709\u52b9\u306a\u89e3\u6c7a\u624b\u6bb5\u3068\u3057\u3066\u7a4d\u6975\u7684\u306b\u6d3b\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u4eca\u56de\u306f\u4e00\u822c\u306e\u65b9\u306b\u3082\u306a\u3058\u307f\u306e\u3042\u308b\u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u5206\u6790\u3092\u901a\u3058\u3066\u3001\u30b0\u30e9\u30d5\u30c7\u30fc\u30bf\u304a\u3088\u3073Spark GraphX\u306e\u9b45\u529b\u306b\u3064\u3044\u3066\u8a9e\u3063\u3066\u307f\u308b\u3053\u3068\u306b\u3057\u307e\u3059\u3002<\/p>\n<h3>2. \u30b5\u30c3\u30ab\u30fc\u3068\u30b0\u30e9\u30d5<\/h3>\n<p>\u5148\u306b\u63b2\u8f09\u3057\u3066\u3044\u308b\u3001<a href=\"\/lab\/7168\" target=\"_blank\" rel=\"noopener\">Neo4j\u306e\u8a18\u4e8b<\/a>\u3067\u30b0\u30e9\u30d5\u7406\u8ad6\u306e\u53ef\u80fd\u6027\u3092\u611f\u3058\u3066\u3044\u305f\u3060\u3051\u305f\u304b\u3068\u601d\u3044\u307e\u3059\u3002\u4eca\u56de\u306f\u3053\u306e\u30b0\u30e9\u30d5\u7406\u8ad6\u304c\u3069\u3046\u5f79\u306b\u7acb\u3064\u306e\u304b\u3092\u9055\u3046\u8996\u70b9\u304b\u3089\u63a2\u3063\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u3053\u3053\u3067\u76ee\u306b\u4ed8\u3044\u305f\u306e\u304c\u305f\u3060\u306e\u9031\u672b\u306e\u5a2f\u697d\u3067\u3082\u3042\u308a\u306a\u304c\u3089\u3001\u4e16\u754c\u3067100\u5104\u30c9\u30eb\u898f\u6a21\u306e\u30d3\u30b8\u30cd\u30b9\u3067\u3082\u3042\u308b\u30b5\u30c3\u30ab\u30fc\u3067\u3059\u3002<\/p>\n<p>\u30b5\u30c3\u30ab\u30fc\u8a66\u5408\u98a8\u666f\u306f\u30ad\u30c3\u30af\u30aa\u30d5\u3068\u540c\u6642\u306b\u9078\u624b\u305f\u3061\u304c\u30d4\u30c3\u30c1\u4e0a\u3092\u81ea\u7531\u306b\u52d5\u3044\u3066\u4e0d\u898f\u5247\u306b\u898b\u3048\u308b\u306e\u3067\u3059\u304c\u3001\u5c11\u3057\u6574\u7406\u3059\u308b\u3068\u3042\u308b\u898f\u5247\u6027\u304c\u73fe\u308c\u3066\u304d\u307e\u3059\u3002\u9078\u624b\u3092\u30b0\u30e9\u30d5\u306e\u9802\u70b9\u306b\u898b\u7acb\u3066\u308b\u3068\u3001\u30dc\u30fc\u30eb\u304c\u9078\u624b\u306e\u9593\u3067\u79fb\u52d5\u3059\u308b\u9053\u304c\u30b0\u30e9\u30d5\u306e\u8fba\u306b\u898b\u3048\u3066\u304d\u307e\u3059\u3002<\/p>\n<p>\u30b5\u30c3\u30ab\u30fc\u306e\u30d5\u30a9\u30fc\u30e1\u30fc\u30b7\u30e7\u30f3\u56f3\u3092\u898b\u305f\u3053\u3068\u304c\u3042\u308b\u4eba\u306a\u3089\u3070\u3001\u5404\u30dd\u30b8\u30b7\u30e7\u30f3\u306e\u9593\u306b\u30d1\u30b9\u4ea4\u63db\u3057\u305f\u6570\u306e\u7dda\u3092\u5165\u308c\u308c\u3070\u3001\u982d\u306b\u30b0\u30e9\u30d5\u304c\u6d6e\u304b\u3073\u4e0a\u304c\u3063\u3066\u304f\u308b\u3067\u3057\u3087\u3046\u3002*\u4ee5\u4e0b\u306e\u56f3\u3084\u30da\u30fc\u30b8\u30c8\u30c3\u30d7\u306e\u5199\u771f\u3092\u53c2\u8003\u306b\u3057\u3066\u4e0b\u3055\u3044\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/soccer_network.png\"><img loading=\"lazy\" decoding=\"async\" class=\"  wp-image-10832 aligncenter\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/soccer_network.png\" alt=\"soccer_network\" width=\"362\" height=\"188\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/soccer_network.png 582w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/soccer_network-182x95.png 182w\" sizes=\"auto, (max-width: 362px) 100vw, 362px\" \/><\/a><\/p>\n<p>\u4eca\u56de\u306f\u30b5\u30c3\u30ab\u30fc\u9078\u624b\u3092\u30b0\u30e9\u30d5\u306e\u9802\u70b9\u3068\u3057\u3001\u30d1\u30b9\u3092\u5404\u9802\u70b9\u306e\u5165\u6b21\u6570\u304a\u3088\u3073\u51fa\u6b21\u6570\u3068\u8003\u3048\u3001\u8a66\u5408\u4e2d\u306e\u30d1\u30b9\u30c7\u30fc\u30bf\u3092\u30b0\u30e9\u30d5\u5316\u3057\u3066\u307f\u307e\u3059\u3002\u3053\u3053\u3067\u306e\u76ee\u7684\u306f\u3053\u306e\u7406\u8ad6\u304c\u672c\u5f53\u306b\u6d3b\u7528\u3067\u304d\u308b\u306e\u304b\u3068\u3001\u305d\u3057\u3066\u3082\u3057\u51fa\u6765\u308b\u306e\u3067\u3042\u308c\u3070\u30b0\u30e9\u30d5\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u306b\u57fa\u3065\u3044\u3066\u91cd\u8981\u9078\u624b\u306a\u3069\u3092\u8a08\u7b97\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u304b\u3092\u691c\u8a3c\u3059\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n<p>\u305d\u3046\u3067\u3042\u308c\u3070\u30b5\u30c3\u30ab\u30fc\u3092\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u3068\u8003\u3048\u3001\u3069\u3046\u3044\u3046\u6226\u8853\u304c\u79d1\u5b66\u7684\u306b\u52b9\u679c\u304c\u3042\u308b\u306e\u304b\u3092\u8a3c\u62e0\u3065\u3051\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002\u30b9\u30dd\u30fc\u30c4\u306f\u79d1\u5b66\u3067\u306f\u306a\u3044\u3067\u3059\u304c\u3001\u79d1\u5b66\u306f\u30b9\u30dd\u30fc\u30c4\u3092\u65b0\u3057\u3044\u8996\u70b9\u304b\u3089\u89e3\u91c8\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u306b\u306a\u308b\u306e\u3067\u306f\u306a\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<h3>3. GraphX\u306e\u8a73\u7d30<\/h3>\n<p>\u4eca\u56de\u306e\u691c\u8a3c\u3067\u7528\u3044\u305fApache Spark\u306f\u8fd1\u5e74\u6025\u6fc0\u306b\u958b\u767a\u304c\u9032\u3093\u3067\u304a\u308a\u30d3\u30c3\u30b0\u30c7\u30fc\u30bf\u51e6\u7406\u306e\u6b21\u4e16\u4ee3\u4e3b\u5f79\u3068\u3082\u8a00\u308f\u308c\u3066\u3044\u308b\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3042\u308a\u3001GraphX\u306f\u30b0\u30e9\u30d5\u4f5c\u308a\u3068\u30b0\u30e9\u30d5\u4e26\u5217\u8a08\u7b97\u51e6\u7406\u3092\u5f97\u610f\u3068\u3059\u308bSpark\u306eAPI\u3067\u3059\u3002<\/p>\n<p>\u5f93\u6765\u306e\u30b0\u30e9\u30d5\u51e6\u7406\u30b7\u30b9\u30c6\u30e0\u3068\u9055\u3046\u6240\u306f\u30b0\u30e9\u30d5\u4e26\u5217\u3068\u30c7\u30fc\u30bf\u4e26\u5217\u304c\u7d71\u5408\u3055\u308c\u305f\u30d7\u30ed\u30bb\u30b9\u3067\u884c\u308f\u308c\u308b\u4e8b\u3067\u3059\u3002\u5f93\u6765\u306e\u30b0\u30e9\u30d5\u51e6\u7406\u30b7\u30b9\u30c6\u30e0\u306f\u30b0\u30e9\u30d5\u4e26\u5217\u3068\u30c7\u30fc\u30bf\u4e26\u5217\u304c\u7570\u306a\u308b\u30d7\u30ed\u30bb\u30b9\u3067\u884c\u308f\u308c\u3066\u3044\u305f\u305f\u3081\u306b\u3001\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u79fb\u52d5\u3084\u8907\u88fd\u304c\u6c42\u3081\u3089\u308c\u3001\u8ab2\u984c\u6b21\u7b2c\u3067\u306f\u8907\u6570\u306e\u30c6\u30fc\u30d6\u30eb\u3084\u30b0\u30e9\u30d5\u306e\u898b\u65b9\u3092\u4f5c\u3089\u306a\u3051\u308c\u3070\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<p>GraphX\u306f\u30e6\u30fc\u30b6\u304c\u72b6\u6cc1\u306b\u5fdc\u3058\u3066\u30c7\u30fc\u30bf\u306e\u898b\u65b9\u3092\u5909\u3048\u308b\u3053\u3068\u3092\u8907\u88fd\u306a\u3057\u3067\u884c\u3044\u307e\u3059\u306e\u3067\u3001\u975e\u5e38\u306b\u9ad8\u901f\u306a\u51e6\u7406\u3092\u53ef\u80fd\u306b\u3057\u307e\u3059\u3002<\/p>\n<p><a href=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graph_analytics_pipeline.png\"><img loading=\"lazy\" decoding=\"async\" class=\"  wp-image-10833 aligncenter\" src=\"\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graph_analytics_pipeline-1024x678.png\" alt=\"graph_analytics_pipeline\" width=\"298\" height=\"197\" srcset=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graph_analytics_pipeline-1024x678.png 1024w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graph_analytics_pipeline-143x95.png 143w, https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graph_analytics_pipeline.png 1190w\" sizes=\"auto, (max-width: 298px) 100vw, 298px\" \/><\/a><\/p>\n<h3>4. \u30c7\u30fc\u30bf<\/h3>\n<p>\u3053\u3053\u3067\u7528\u3044\u305f\u30c7\u30fc\u30bf\u306f\u6b27\u5dde\u30b5\u30c3\u30ab\u30fc\u30b5\u30a4\u30c8FourFourTwo (<a href=\"http:\/\/www.fourfourtwo\/\" target=\"_blank\" rel=\"noopener\">http:\/\/www.fourfourtwo.com\/<\/a>)\u306e<a href=\"http:\/\/www.fourfourtwo.com\/statszone\/5-2014\/matches\/800865\" target=\"_blank\" rel=\"noopener\">\u516c\u958b\u30c7\u30fc\u30bf<\/a>\u3068\u8a66\u5408\u52d5\u753b\u3092\u5143\u306b\u79c1\u304c\u4f5c\u6210\u3057\u305f\u30012015\u5e74\u306e\u30c1\u30e3\u30f3\u30d4\u30aa\u30f3\u30ba\u30ea\u30fc\u30b0\u6c7a\u52dd\u30d0\u30eb\u30bb\u30ed\u30ca\u5bfe\u30e6\u30d9\u30f3\u30c8\u30b9\u306e\u30d1\u30b9\u30c7\u30fc\u30bf\u306e\u4e00\u90e8\u3067\u3059\u3002<\/p>\n<h3>5. \u00a0\u5b9f\u8df5<\/h3>\n<p>\u3053\u306e\u64cd\u4f5c\u306fSpark\u306e\u30b7\u30a7\u30eb\u304b\u3089Scala\u8a00\u8a9e\u3092\u4f7f\u3044\u884c\u3044\u307e\u3059\u3002\u30b7\u30a7\u30eb\u3092\u958b\u3044\u305f\u3089\u59cb\u3081\u306b\u30b0\u30e9\u30d5\u5206\u6790\u306b\u5fc5\u8981\u306aGraphX\u3068RDD\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u307e\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff11 - GraphX\u3068RDD\u306e\u30a4\u30f3\u30dd\u30fc\u30c8<\/strong><\/p>\n<pre>scala&gt; import org.apache.spark.graphx._\r\n\/\/import org.apache.spark.graphx._\r\n\r\nscala&gt; import org.apache.spark.rdd.RDD\r\n\/\/import org.apache.spark.rdd.RDD<\/pre>\n<p>\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u305f\u3089\u307e\u305a\u306f\u3001\u30d0\u30eb\u30bb\u30ed\u30ca\u306e\u5404\u9078\u624b\u9593\u306e\u30d1\u30b9\u30c7\u30fc\u30bf\u3092\u624b\u4f5c\u696d\u3067\u9078\u624b\u914d\u5217\u3068\u30d1\u30b9\u914d\u5217\u3068\u3057\u3066\u5165\u529b\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u3053\u3053\u3067\u4f7f\u3046\u306e\u304c\u30d7\u30ed\u30d1\u30c6\u30a3\u30b0\u30e9\u30d5\u3067\u3059\u3002<\/p>\n<p>\u30d7\u30ed\u30d1\u30c6\u30a3\u30b0\u30e9\u30d5\u3068\u306f\u5404\u9802\u70b9\u3068\u5404\u8fba\u306b\u30e6\u30fc\u30b6\u304c\u5b9a\u7fa9\u3057\u305f\u7279\u6027\uff08\u30d7\u30ed\u30d1\u30c6\u30a3\uff09\u3092\u4ed8\u3051\u52a0\u3048\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u6709\u5411\u591a\u91cd\u30b0\u30e9\u30d5\u3067\u3059\u3002<\/p>\n<p>\u6709\u5411\u3068\u306f\u8fba\u306b\u65b9\u5411\u304c\u4ed8\u3044\u3066\u3044\u308b\u3053\u3068\u3067\u3001\u30d1\u30b9\u3092\u51fa\u3057\u305f\u9078\u624b\u3092\u63a5\u7d9a\u5143\u3001\u30d1\u30b9\u3092\u53d7\u3051\u305f\u9078\u624b\u3092\u63a5\u7d9a\u5148\u3068\u3057\u3066\u5165\u529b\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u591a\u91cd\u3068\u306f\u9078\u624b\u306e\u9593\u306b\u8907\u6570\u306e\u30d1\u30b9\u304c\u901a\u3063\u305f\u3053\u3068\u3092\u610f\u5473\u3057\u307e\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff12 - \u9078\u624b\u914d\u5217\u3068\u30d1\u30b9\u914d\u5217\u306e\u4f5c\u6210<\/strong><\/p>\n<pre>scala&gt; val playerArray = Array( (1L, (\"Messi\", \"FW\")), (2L, (\"Suarez\", \"FW\")), (3L, (\"Neymar\", \"FW\")), (4L, (\"Iniesta\", \"MF\")), (5L, (\"Rakitic\", \"MF\")), (6L, (\"Busquets\", \"MF\")), (7L, (\"Alves\", \"DF\")), (8L, (\"Pique\", \"DF\")), (9L, (\"Mascherano\", \"DF\")), (10L, (\"Alba\", \"DF\")), (11L, (\"Stegen\", \"GK\")) )\r\n\/\/ playerArray: Array[(Long, (String, String))] = Array((1,(Messi,FW)), (2,(Suarez,FW)), (3,(Neymar,FW)), (4,(Iniesta,MF)), (5,(Rakitic,MF)), (6,(Busquets,MF)), (7,(Alves,DF)), (8,(Pique,DF)), (9,(Mascherano,DF)), (10,(Alba,DF)), (11,(Stegen,GK))) \/\/\u51fa\u529b\r\n\r\nscala&gt; val passArray = Array( Edge(1L, 2L, 8), Edge(1L, 3L, 12), Edge(1L, 4L, 7), Edge(1L, 5L, 6), Edge(1L, 6L, 10), Edge(1L, 7L, 10), Edge(1L, 8L, 1), Edge(1L, 10L, 7), Edge(2L, 1L, 6), Edge(2L, 3L, 6), Edge(2L, 4L, 2), Edge(2L, 5L, 3), Edge(2L, 6L, 1), Edge(2L, 7L, 3), Edge(2L, 8L, 1), Edge(3L, 1L, 10), Edge(3L, 2L, 6), Edge(3L, 4L, 6), Edge(3L, 5L, 1), Edge(3L, 6L, 3), Edge(3L, 7L, 3), Edge(3L, 10L, 9), Edge(4L, 1L, 6), Edge(4L, 2L, 2), Edge(4L, 3L, 10), Edge(4L, 5L, 3), Edge(4L, 6L, 7), Edge(4L, 7L, 2), Edge(4L, 8L, 1), Edge(4L, 9L, 4), Edge(4L, 10L, 14), Edge(5L, 1L, 12), Edge(5L, 2L, 2), Edge(5L, 3L, 1), Edge(5L, 4L, 2), Edge(5L, 6L, 5), Edge(5L, 7L, 14), Edge(5L, 8L, 3), Edge(5L, 9L, 5), Edge(5L, 10L, 1), Edge(6L, 1L, 8), Edge(6L, 2L, 2), Edge(6L, 4L, 9), Edge(6L, 5L, 8), Edge(6L, 7L, 16), Edge(6L, 8L, 5), Edge(6L, 9L, 7), Edge(6L, 10L, 5), Edge(6L, 11L, 2), Edge(7L, 1L, 25), Edge(7L, 2L, 2), Edge(7L, 4L, 1), Edge(7L, 5L, 21), Edge(7L, 6L, 7), Edge(7L, 8L, 3), Edge(7L, 9L, 2), Edge(7L, 10L, 4), Edge(8L, 1L, 2), Edge(8L, 2L, 2), Edge(8L, 4L, 1), Edge(8L, 5L, 1), Edge(8L, 6L, 1), Edge(8L, 7L, 12), Edge(8L, 9L, 6), Edge(8L, 10L, 3), Edge(8L, 11L, 6), Edge(9L, 1L, 1), Edge(9L, 2L, 1), Edge(9L, 3L, 1), Edge(9L, 4L, 4), Edge(9L, 5L, 3), Edge(9L, 6L, 7), Edge(9L, 7L, 7), Edge(9L, 8L, 4), Edge(9L, 10L, 10), Edge(9L, 11L, 2), Edge(10L, 2L, 2), Edge(10L, 3L, 21), Edge(10L, 4L, 14), Edge(10L, 6L, 8), Edge(10L, 7L, 1), Edge(10L, 9L, 13), Edge(10L, 11L, 1), Edge(11L, 1L, 1), Edge(11L, 5L, 1), Edge(11L, 6L, 1), Edge(11L, 7L, 2), Edge(11L, 8L, 1), Edge(11L, 9L, 1), Edge(11L, 10L, 4) )\r\n\/\/ passArray: Array[org.apache.spark.graphx.Edge[Int]] = Array(Edge(1,2,8), Edge(1,3,12), Edge(1,4,7), Edge(1,5,6), Edge(1,6,10), Edge(1,7,10), Edge(1,8,1), Edge(1,10,7), Edge(2,1,6), Edge(2,3,6), Edge(2,4,2), Edge(2,5,3), Edge(2,6,1), Edge(2,7,3), Edge(2,8,1), Edge(3,1,10), Edge(3,2,6), Edge(3,4,6), Edge(3,5,1), Edge(3,6,3), Edge(3,7,3), Edge(3,10,9), Edge(4,1,6), Edge(4,2,2), Edge(4,3,10), Edge(4,5,3), Edge(4,6,7), Edge(4,7,2), Edge(4,8,1), Edge(4,9,4), Edge(4,10,14), Edge(5,1,12), Edge(5,2,2), Edge(5,3,1), Edge(5,4,2), Edge(5,6,5), Edge(5,7,14), Edge(5,8,3), Edge(5,9,5), Edge(5,10,1), Edge(6,1,8), Edge(6,2,2), Edge(6,4,9), Edge(6,5,8), Edge(6,7,16), Edge(6,8,5), Edge(6,9,7), Edge(6,10,5), Edge(6,11,2), Edge(7,1,25), Edge(7,2,2), Edge(7,4,1), Edge(7,5,21), Edge(7,6,7), Edge(7,8,3), Edge(...\/\/ \u51fa\u529b<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff12\uff1aplayerArray\u304c\u9078\u624b\u914d\u5217\u5909\u6570\u3067passArray\u304c\u30d1\u30b9\u914d\u5217\u5909\u6570\u306e\u5b9a\u7fa9\u3067\u3059\u3002\u4eca\u56de\u306e\u9078\u624b\u914d\u5217\u5909\u6570\u306f\u9078\u624b\u306eID,\u3000\u540d\u524d,\u3000\u30dd\u30b8\u30b7\u30e7\u30f3\u3092\u5165\u529b\u3057\u307e\u3057\u305f\u304c\u3001\u5fc5\u8981\u3067\u3042\u308c\u3070\u305d\u308c\u4ee5\u5916\u306e\u60c5\u5831\u3082\u4ed8\u3051\u52a0\u3048\u3066\u5165\u529b\u3067\u304d\u307e\u3059\u3002\u30d1\u30b9\u914d\u5217\u5909\u6570\u306f\u9078\u624bID\u3092\u4f7f\u3044\u3001\u5f15\u6570\uff11\u304c\u63a5\u7d9a\u5143\u9078\u624b\u3001\u5f15\u6570\uff12\u304c\u63a5\u7d9a\u5148\u9078\u624b\u3001\u5f15\u6570\uff13\u304c\u30d1\u30b9\u306e\u6570\u3068\u3057\u3066\u5165\u529b\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u3053\u3053\u3067\u9802\u70b9\u3068\u8fba\u306e\u914d\u5217\u5909\u6570\u3092RDD\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002RDD\u306fSpark\u306e\u57fa\u672c\u62bd\u8c61\u6982\u5ff5\u3067\u3001\u52b9\u7387\u7684\u306a\u4e26\u5217\u51e6\u7406\u3092\u53ef\u80fd\u306b\u3059\u308b\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3067\u3059\u3002RDD\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059\u3068\u3001Spark\u304c\u63d0\u4f9b\u3057\u3066\u3044\u308b\u30aa\u30da\u30ec\u30fc\u30bf\u3092\u81ea\u7531\u306b\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff13 - \u9078\u624bRDD\u3068\u30d1\u30b9RDD\u306e\u4f5c\u6210<\/strong><\/p>\n<pre>scala&gt; val playerRDD: RDD[(Long, (String, String))] = sc.parallelize(playerArray)\r\n\/\/ playerRDD: org.apache.spark.rdd.RDD[(Long, (String, String))] = ParallelCollectionRDD[0] at parallelize at :27 \/\/ \u51fa\u529b\r\n\r\nscala&gt; val passRDD: RDD[Edge[Int]] = sc.parallelize(passArray)\r\n\/\/ passRDD: org.apache.spark.rdd.RDD[org.apache.spark.graphx.Edge[Int]] = ParallelCollectionRDD[1] at parallelize at :27 \/\/ \u51fa\u529b<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff13\uff1asc.parallelize\u30aa\u30da\u30ec\u30fc\u30bf\u3092\u4f7f\u3063\u3066\u9078\u624bRDD\u3068\u30d1\u30b9RDD\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002\u3053\u308c\u3067\u30b0\u30e9\u30d5\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u9078\u624bRDD\u3068\u30d1\u30b9RDD\u3092\u4f7f\u3063\u3066\u30b0\u30e9\u30d5\u3092\u4f5c\u308b\u4f5c\u696d\u306fGraphX\u3067\u4ee5\u4e0b\u306e\u30b0\u30e9\u30d5\u30aa\u30da\u30ec\u30fc\u30bf\u3092\u547c\u3076\u3060\u3051\u306e\u5358\u7d14\u306a\u64cd\u4f5c\u3067\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff14\uff1a\u9078\u624bRDD\u3068\u30d1\u30b9RDD\u3092\u7d71\u5408\u3057\u305f\u30b0\u30e9\u30d5\u306e\u4f5c\u6210<\/strong><\/p>\n<pre>scala&gt; val graph: Graph[(String, String), Int] = Graph(playerRDD, passRDD)\r\n\/\/ graph: org.apache.spark.graphx.Graph[(String, String),Int] = org.apache.spark.graphx.impl.GraphImpl@4488af25 \/\/ \u51fa\u529b<\/pre>\n<p>\u4f5c\u6210\u5f8c\u306f\u30b0\u30e9\u30d5\u304c\u6b63\u78ba\u306b\u51fa\u6765\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002\u3053\u306e\u7d50\u679c\u3092\u8abf\u3079\u308b\u305f\u3081\u306b\u30c8\u30ea\u30d7\u30ec\u30c3\u30c8\u3068\u3044\u3046\u8fd1\u63a5\u96c6\u5408\u306e\u30aa\u30da\u30ec\u30fc\u30bf\u3092\u547c\u3073\u307e\u3059\u3002\u30c8\u30ea\u30d7\u30ec\u30c3\u30c8\u306f\u4e8c\u3064\u306e\u9802\u70b9\u3068\u305d\u306e\u9593\u306b\u3042\u308b\u8fba\u3092\u96c6\u5408\u3057\u305f\u30a8\u30ec\u30e1\u30f3\u30c8\u3067\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff15 - \u4f5c\u6210\u3055\u308c\u305f\u30b0\u30e9\u30d5\u306e\u78ba\u8a8d<\/strong><\/p>\n<pre>scala&gt; for (triplet <- graph.triplets.collect) { println(s\"${triplet.srcAttr._1} passed to ${triplet.dstAttr._1}\") }\r\n\/\/ Messi passed to Suarez\r\nMessi passed to Neymar\r\nMessi passed to Iniesta\r\nMessi passed to Rakitic\r\nMessi passed to Busquets\r\nMessi passed to Alves\r\nMessi passed to Pique\r\nMessi passed to Alba\r\nSuarez passed to Messi\r\nSuarez passed to Neymar\r\nSuarez passed to Iniesta\r\nSuarez passed to Rakitic\r\nSuarez passed to Busquets\r\nSuarez passed to Alves\r\nSuarez passed to Pique\r\nNeymar passed to Messi\r\nNeymar passed to Suarez\r\nNeymar passed to Iniesta\r\nNeymar passed to Rakitic\r\nNeymar passed to Busquets\r\nNeymar passed to Alves\r\nNeymar passed to Alba\r\nIniesta passed to Messi\r\nIniesta passed to Suarez\r\nIniesta passed to Neymar... \/\/ \u51fa\u529b\u7701\u7565<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff15\uff1a\u3000\u3053\u308c\u3067\u5165\u529b\u3057\u305f\u30c7\u30fc\u30bf\u304c\u3057\u3063\u304b\u308a\u30d1\u30b9\u3092\u8868\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u30c8\u30ea\u30d7\u30ec\u30c3\u30c8\u306e\u63a5\u7d9a\u5143\uff08srcAttr._1)\u304c\u30c8\u30ea\u30d7\u30ec\u30c3\u30c8\u306e\u63a5\u7d9a\u5148\uff08destAttr._1)\u306b\u30d1\u30b9\u3092\u9001\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u8ab0\u306b\u30d1\u30b9\u3092\u51fa\u3057\u305f\u304b\u306f\u57fa\u672c\u3067\u3059\u3002\u3053\u3053\u3067\u3001\u9664\u5916\u64cd\u4f5c\u3092\u884c\u3044\u7279\u5b9a\u306e\u9078\u624b\u306b10\u56de\u4ee5\u4e0a\u30d1\u30b9\u3092\u51fa\u3057\u305f\u9078\u624b\u3092\u8abf\u3079\u307e\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff16 - \u540c\u3058\u9078\u624b\uff08\u63a5\u7d9a\u5148\uff09\u306b10\u56de\u4ee5\u4e0a\u30d1\u30b9\u3092\u51fa\u3057\u305f\u9078\u624b\u3092\u8abf\u3079\u308b<\/strong><\/p>\n<pre>scala&gt; for (triplet <- graph.triplets.filter(t => t.attr >= 10).collect) { println(s\"${triplet.srcAttr._1} passed to ${triplet.dstAttr._1} 10 times or more\") }\r\n\/\/ Messi passed to Neymar 10 times or more\r\nMessi passed to Busquets 10 times or more\r\nMessi passed to Alves 10 times or more\r\nNeymar passed to Messi 10 times or more\r\nIniesta passed to Neymar 10 times or more\r\nIniesta passed to Alba 10 times or more\r\nRakitic passed to Messi 10 times or more\r\nRakitic passed to Alves 10 times or more\r\nBusquets passed to Alves 10 times or more\r\nAlves passed to Messi 10 times or more\r\nAlves passed to Rakitic 10 times or more\r\nPique passed to Alves 10 times or more\r\nMascherano passed to Alba 10 times or more\r\nAlba passed to Neymar 10 times or more\r\nAlba passed to Iniesta 10 times or more\r\nAlba passed to Mascherano 10 times or more \/\/ \u51fa\u529b<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff16\uff1a\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff15\u306e\u30c8\u30ea\u30d7\u30ec\u30c3\u30c8\u64cd\u4f5c\u306b\u30d5\u30a3\u30eb\u30bf\u30fc\u30aa\u30da\u30ec\u30fc\u30bf\u3092\u4ed8\u3051\u52a0\u3048\u3066\u3001\u5b9a\u7fa9\u3055\u308c\u305f\u9078\u624b\u3092\u9664\u5916\u3057\u307e\u3057\u305f\u3002\u7c21\u5358\u306a\u65b9\u6cd5\u3067\u3059\u304c\u3001\u3053\u308c\u3067\u3069\u306e\u30d1\u30b9\u30b3\u30fc\u30b9\u304c\u983b\u7e41\u306a\u306e\u304b\u304c\u898b\u3048\u3066\u304d\u307e\u3059\u3002<\/p>\n<p>\u6b21\u306b\u9078\u624b\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u3001\u5404\u9078\u624b\u306b\u5165\u308b\u3001\u307e\u305f\u306f\u5404\u9078\u624b\u304b\u3089\u51fa\u308b\u30d1\u30b9\u3092\u5165\u6b21\u6570\u3001\u51fa\u6b21\u6570\u3068\u3044\u3046\u7279\u6027\u3092\u4ed8\u3051\u52a0\u3048\u307e\u3059\u3002\u9078\u624b\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3059\u308b\u306e\u306f\u3001\u3053\u308c\u3092\u4f7f\u3063\u3066\u65b0\u305f\u306a\u7279\u6027\u306e\u4ed8\u3044\u305f\u30b0\u30e9\u30d5\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u3067\u3059\u3002<\/p>\n<p>\u3053\u308c\u3067\u8ab0\u306b\u30d1\u30b9\u3092\u51fa\u3057\u305f\u304b\u3060\u3051\u3067\u306f\u306a\u304f\u3001\u8ab0\u304b\u3089\u30d1\u30b9\u3092\u53d7\u3051\u305f\u306e\u304b\u3092\u8abf\u3079\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff17 - \u5165\u6b21\u6570\u3068\u51fa\u6b21\u6570\u3092\u8db3\u3057\u305f\u9078\u624b\u30af\u30e9\u30b9\u306e\u4f5c\u6210<\/strong><\/p>\n<pre>scala&gt; case class Player(name: String, position: String, inDeg: Int, outDeg: Int)\r\n\/\/ defined class Player\r\n<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff17\uff1a\u65b0\u3057\u3044\u9078\u624b\u30af\u30e9\u30b9\u306f\u540d\u524d\u3001\u30dd\u30b8\u30b7\u30e7\u30f3\u3001\u5165\u6b21\u6570(inDeg)\u3068\u51fa\u6b21\u6570(outDeg)\u3092\u542b\u307f\u307e\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff18 - \u5143\u306e\u30b0\u30e9\u30d5\u306b\u9078\u624b\u30af\u30e9\u30b9\u306e\u7279\u5fb4\u3092\u52a0\u3048\u305f\u65b0\u3057\u3044\u9078\u624b\u30b0\u30e9\u30d5\u306e\u4f5c\u6210<\/strong><\/p>\n<pre>scala&gt; val iniPlayerGraph: Graph[Player, Int] = graph.mapVertices{ case (id, (name, position)) =&gt; Player(name, position, 0, 0) }\r\n\/\/ iniPlayerGraph: org.apache.spark.graphx.Graph[Player,Int] = org.apache.spark.graphx.impl.GraphImpl@727a9f31 \/\/ \u51fa\u529b\r\n\r\nscala&gt; val PlayerGraph = iniPlayerGraph.outerJoinVertices(iniPlayerGraph.inDegrees) { case (id, u, inDegOpt) =&gt; Player(u.name, u.position, inDegOpt.getOrElse(0), u.outDeg) }.outerJoinVertices(iniPlayerGraph.outDegrees) { case (id, u, outDegOpt) =&gt; Player(u.name, u.position, u.inDeg, outDegOpt.getOrElse(0)) }\r\n\/\/ PlayerGraph: org.apache.spark.graphx.Graph[Player,Int] = org.apache.spark.graphx.impl.GraphImpl@37a10c6 \/\/ \u51fa\u529b\r\n<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff18\uff1a\u3053\u3053\u3067\u4f7f\u3063\u305f\u30aa\u30da\u30ec\u30fc\u30bf\u306fmapVertices\u3068outerJoinVertices\u3067\u3059\u3002\u3053\u308c\u306f\u65b0\u3057\u3044\u30b0\u30e9\u30d5\u306e\u521d\u671f\u8a2d\u5b9a\u3068\u5143\u306e\u30b0\u30e9\u30d5\u306e\u60c5\u5831\uff08\u540d\u524d\u3001\u30dd\u30b8\u30b7\u30e7\u30f3\uff09\u3068\u65b0\u3057\u3044\u30b0\u30e9\u30d5\u306e\u60c5\u5831\uff08\u30d1\u30b9\u3092\u51fa\u3057\u305f\u3001\u53d7\u3051\u305f\u56de\u6570\uff09\u3092\u7d71\u5408\u3055\u305b\u308b\u64cd\u4f5c\u3067\u3059\u3002<\/p>\n<p>\u65b0\u3057\u3044\u30b0\u30e9\u30d5\u304c\u51fa\u6765\u305f\u306e\u3067\u3001\u5404\u9078\u624b\u304c\u4f55\u4eba\u306e\u9078\u624b\u3068\u7e4b\u304c\u3063\u3066\u3044\u305f\u306e\u304b\uff08\u4f55\u4eba\u306e\u9078\u624b\u304b\u3089\u30d1\u30b9\u3092\u53d7\u3051\u305f\u306e\u304b)\u3092\u8abf\u3079\u307e\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff19 - \u4f55\u4eba\u306e\u9078\u624b\u304b\u3089\u30d1\u30b9\u304c\u6765\u305f\u306e\u304b\u3092\u8abf\u3079\u308b<\/strong><\/p>\n<pre>scala&gt; for ((id, property) <- PlayerGraph.vertices.collect) { println(s\"${property.name} recieved a pass from ${property.inDeg} people\") }\r\n\/\/ Iniesta recieved a pass from 9 people\r\nBusquets recieved a pass from 10 people\r\nPique recieved a pass from 8 people\r\nAlba recieved a pass from 9 people\r\nSuarez recieved a pass from 9 people\r\nStegen recieved a pass from 4 people\r\nMessi recieved a pass from 9 people\r\nNeymar recieved a pass from 6 people\r\nAlves recieved a pass from 10 people\r\nMascherano recieved a pass from 7 people\r\nRakitic recieved a pass from 9 people \/\/ \u51fa\u529b<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff19\uff1a\u65b0\u3057\u304f\u5b9a\u7fa9\u3055\u308c\u305fproperty.inDeg\u304c\u5404\u9078\u624b\u304c\u30d1\u30b9\u3092\u53d7\u3051\u305f\u56de\u6570\u3067\u3059\u3002\u30d6\u30b9\u30b1\u30c3\u30c4\u9078\u624b\u3068\u30a2\u30eb\u3079\u30b9\u9078\u624b\u304c\u4e00\u756a\u591a\u304f\u9055\u3046\u9078\u624b\u304b\u3089\u30d1\u30b9\u3092\u8cb0\u3063\u3066\u3044\u308b\u3053\u3068\u304c\u5206\u304b\u308a\u307e\u3059\u3002\u30d0\u30eb\u30bb\u30ed\u30ca\u306f\u30d1\u30b9\u91cd\u8996\u306e\u30c1\u30fc\u30e0\u306a\u306e\u3067\u3001\u30c1\u30fc\u30e0\u5168\u4f53\u3067\u30d1\u30b9\u304c\u56de\u3063\u3066\u3044\u308b\u3053\u3068\u3082\u8a3c\u660e\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u7570\u306a\u308b\u30c1\u30fc\u30e0\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3059\u308b\u3068\u3082\u3046\u5c11\u3057\u3070\u3089\u3064\u304d\u304c\u4ed8\u304f\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/p>\n<p>\u6700\u5f8c\u306b\u30da\u30fc\u30b8\u30e9\u30f3\u30af\u3092\u4f7f\u3063\u3066\u30d1\u30b9\u56de\u3057\u3067\u4e00\u756a\u91cd\u8981\u306a\u9078\u624b\u3092\u8abf\u3079\u3066\u307f\u307e\u3059\u3002\u30da\u30fc\u30b8\u30e9\u30f3\u30af\u3068\u306f\u30b0\u30fc\u30b0\u30eb\u304c\u30b5\u30a4\u30c8\u3092\u30e9\u30a4\u30f3\u30ad\u30f3\u30b0\u3059\u308b\u305f\u3081\u306b\u4f5c\u3063\u305f\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0\u3067\u3059\u3002<\/p>\n<p>\u8efd\u304f\u8aac\u660e\u3059\u308b\u3068\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u306e\u5834\u5408\uff08\u30b5\u30a4\u30c8\u3092\u30b0\u30e9\u30d5\u306e\u9802\u70b9\u3068\u3057\u3066\u3001\u30ea\u30f3\u30af\u3092\u8fba\u3068\u8003\u3048\u308b\uff09\u3001\u591a\u304f\u306e\u30b5\u30a4\u30c8\u304b\u3089\u30ea\u30f3\u30af\u3055\u308c\u3066\u3044\u308b\u3082\u306e\u3092\u4e0a\u4f4d\u3068\u3057\u6574\u7406\u3055\u308c\u307e\u3059\u3002\u3053\u3053\u3067\u306e\u8981\u4ef6\u306b\u7f6e\u304d\u63db\u3048\u308b\u3068\u3001\u305f\u304f\u3055\u3093\u306e\u9078\u624b\u304b\u3089\u30d1\u30b9\u3092\u8cb0\u3063\u3066\u3044\u308b\u3068\u30e9\u30f3\u30ad\u30f3\u30b0\u304c\u4e0a\u304c\u308b\u3068\u3044\u3046\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p><strong>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff11\uff10\uff1a \u30da\u30fc\u30b8\u30e9\u30f3\u30af\u3092\u884c\u3044\u3001\u30d1\u30b9\u3067\u6700\u91cd\u8981\u9078\u624b\u3092\u63a2\u3059\u3002<\/strong><\/p>\n<pre>scala&gt; val pregraph = PlayerGraph.staticPageRank(11).cache\r\n\/\/ pregraph: org.apache.spark.graphx.Graph[Double,Double] = org.apache.spark.graphx.impl.GraphImpl@58f0aa66 \/\/ \u51fa\u529b\r\n\r\nscala&gt; val passAndPrGraph = PlayerGraph.outerJoinVertices(pregraph.vertices) { (v, pass, rank) =&gt; (rank.getOrElse(0.0), pass) }\r\n\/\/ passAndPrGraph: org.apache.spark.graphx.Graph[(Double, Player),Int] = org.apache.spark.graphx.impl.GraphImpl@661c5675 \/\/\u51fa\u529b\r\n\r\nscala&gt; passAndPrGraph.vertices.top(11) { Ordering.by((entry: (VertexId, (Double, Player))) =&gt; entry._2._1) }.foreach( t =&gt; println(t._2._2 + \": \" + t._2._1))\r\n\/\/ Player(Busquets,MF,10,9): 1.0160295032184092\r\nPlayer(Alves,DF,10,8): 1.0054766919442597\r\nPlayer(Iniesta,MF,9,9): 0.9630340724142503\r\nPlayer(Suarez,FW,9,7): 0.9404722126044849\r\nPlayer(Rakitic,MF,9,9): 0.9195593375445895\r\nPlayer(Messi,FW,9,8): 0.9100040842491883\r\nPlayer(Alba,DF,9,7): 0.8930633194802826\r\nPlayer(Pique,DF,8,9): 0.8443887489867539\r\nPlayer(Mascherano,DF,7,10): 0.7597213226429775\r\nPlayer(Neymar,FW,6,7): 0.6951015618391465\r\nPlayer(Stegen,GK,4,7): 0.48848981657776236 \/\/ \u51fa\u529b<\/pre>\n<p>\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\uff11\uff10\uff1a\u6700\u521d\u306e\u30b3\u30de\u30f3\u30c9\u304c\u30da\u30fc\u30b8\u30e9\u30f3\u30af\u3092\u884c\u3044\u3001\u30e9\u30f3\u30af\u5024\u3092\u8a08\u7b97\u3057\u307e\u3059\u3002\u6b21\u306bOuterJoinVertices\u3067\u30e9\u30f3\u30af\u5024\u3092\u9078\u624b\u30b0\u30e9\u30d5\u306b\u7d71\u5408\u3057\u307e\u3059\u3002\u6700\u5f8c\u306b\u7d71\u5408\u3055\u308c\u305f\u60c5\u5831\u3092\u5143\u306b\u4e0a\u304b\u3089\u9806\u306b\u9078\u624b\u3092\u4e26\u3073\u66ff\u3048\u307e\u3059\u3002<\/p>\n<p>\u7d50\u679c\u3092\u307f\u308b\u3068\u3001MF\u3067\u30d7\u30ec\u30fc\u3057\u3066\u3044\u308b\u9078\u624b\u304c\u3084\u306f\u308a\u30d1\u30b9\u306e\u4e0a\u4f4d\u91cd\u8981\u9078\u624b\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u3057\u304b\u3057\u3001\u3053\u306e\u7d50\u679c\u306f\u3059\u3054\u304f\u5358\u7d14\u3059\u304e\u307e\u3059\u3002\u5206\u6790\u3057\u3066\u307f\u308b\u3068\u30d1\u30b9\u3092\u591a\u304f\u306e\u9078\u624b\u304b\u3089\u8cb0\u3063\u3066\u3044\u308b\u9078\u624b\u304c\u91cd\u8981\u8996\u3055\u308c\u3066\u3044\u3066\u3001\u30d1\u30b9\u3092\u591a\u304f\u306e\u9078\u624b\u306b\u51fa\u3057\u305f\u3053\u3068\u306f\u305d\u308c\u307b\u3069\u91cd\u8981\u3067\u306f\u306a\u3044\u3053\u3068\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u30b5\u30c3\u30ab\u30fc\u3067\u306f\u30d1\u30b9\u3092\u53d7\u3051\u306b\u884c\u304f\u306e\u306f\u5927\u4e8b\u3067\u3059\u304c\u3001\u30dc\u30fc\u30eb\u3092\u518d\u3073\u9001\u308a\u8fd4\u3059\u306e\u3082\u540c\u3058\u304f\u3089\u3044\u91cd\u8981\u3067\u3059\u3002\u751f\u30c7\u30fc\u30bf\u306f\u30a2\u30eb\u3079\u30b9\u9078\u624b\u304c\u4e00\u756a\u591a\u304f\u306e\u30d1\u30b9\u3092\u51fa\u3057\u3066\u3044\u307e\u3057\u305f\u304c\u3001\uff08\u4e00\u4eba\u306e\u9078\u624b\u306b\uff14\uff10\uff05\u8fd1\u304f\u3060\u3057\u3066\u3044\u305f\u306e\u3067\uff09\u305d\u308c\u306f\u3055\u307b\u3069\u91cd\u8981\u3067\u306a\u3044\u3068\u5224\u65ad\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n<h3>\u307e\u3068\u3081<\/h3>\n<ul>\n<li>\u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u3092GraphX\u306b\u3088\u3063\u3066\u30b0\u30e9\u30d5\u5206\u6790\u3092\u884c\u3044\u3001\u30d1\u30b9\u304c\u3069\u306e\u3088\u3046\u306b\u6d41\u308c\u3066\u3044\u308b\u304b\u304c\u56f3\u5f62\u5316\u3067\u304d\u307e\u3059\u3002\n<ul>\n<li>GraphX\u306f\u3059\u3054\u304f\u4f7f\u3044\u3084\u3059\u3044\u3067\u3059\u3002\u30aa\u30da\u30ec\u30fc\u30bf\u3082\u8c4a\u5bcc\u3067\u3001\u7c21\u5358\u306b\u30b0\u30e9\u30d5\u5206\u6790\u306e\u57fa\u672c\u3067\u3042\u308b\u9664\u5916\u4f5c\u696d\u3084\u8fd1\u63a5\u96c6\u5408\u306a\u3069\u304c\u884c\u3048\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>\u3053\u306e\u8a66\u5408\u3067\u306f\u30d6\u30b9\u30b1\u30c3\u30c4\u9078\u624b\u304c\u30da\u30fc\u30b8\u30e9\u30f3\u30af\u7684\u306b\u4e00\u756a\u91cd\u8981\u3068\u5224\u65ad\u3055\u308c\u307e\u3057\u305f\u3002\n<ul>\n<li>\u30d6\u30b9\u30b1\u30c3\u30c4\u9078\u624b\u306f\u30b3\u30a2\u306a\u30b5\u30c3\u30ab\u30fc\u30d5\u30a1\u30f3\u306a\u3089\u62bc\u3057\u306e\u6e0b\u3044\u9078\u624b\u3067\u3059\u304c\u3001\u30da\u30fc\u30b8\u30e9\u30f3\u30af\u306e\u5206\u6790\u7d50\u679c\u306b\u304a\u3044\u3066\u3082\u3001\u5f7c\u304c\u512a\u79c0\u3067\u3042\u308b\u3053\u3068\u304c\u7406\u8ad6\u7684\u306b\u8a3c\u660e\u3055\u308c\u307e\u3057\u305f\u3002<\/li>\n<li>\u30d6\u30b9\u30b1\u30c3\u30c4\u9078\u624b\u304c\u3053\u306e\u5206\u6790\u3067\u9ad8\u3044\u8a55\u4fa1\u3092\u5f97\u3066\u3044\u308b\u7406\u7531\u306f\u7aef\u7684\u306b\u8a00\u3048\u3070\u30c1\u30fc\u30e0\u5168\u4f53\u306b\u30d1\u30b9\u3092\u8cb0\u3044\u306b\u884c\u304f\u56de\u6570\u304c\u591a\u3044\u304b\u3089\u3067\u3059\u3002\u3057\u304b\u3057\u3053\u308c\u306f\u30b9\u30dd\u30fc\u30c4\u5206\u6790\u3068\u3057\u3066\u5358\u7d14\u3059\u304e\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/li>\n<li>\u672c\u683c\u7684\u306a\u30b9\u30dd\u30fc\u30c4\u5206\u6790\u3092\u884c\u3046\u305f\u3081\u306b\u306f\u3001\u3053\u308c\u306b\u52a0\u3048\u3066\u5404\u9078\u624b\u304b\u3089\u30d1\u30b9\u3092\u53d7\u3051\u305f\u56de\u6570\u3001\u51fa\u3057\u305f\u56de\u6570\u3001\u3055\u3089\u306b\u3069\u3053\u306e\u30dd\u30b8\u30b7\u30e7\u30f3\u3067\u8ab0\u3068\u306a\u3069\u306e\u80cc\u666f\u60c5\u5831\u3092\u8e0f\u307e\u3048\u3066\u5206\u6790\u3092\u884c\u3063\u3066\u3044\u304f\u5fc5\u8981\u304c\u3042\u308b\u3067\u3057\u3087\u3046\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>\u3055\u3044\u3054\u306b<\/h3>\n<ul>\n<li>\u3053\u306e\u30c7\u30fc\u30bf\u306f\u4e00\u3064\u306e\u8a66\u5408\u304b\u3089\u306a\u306e\u3067\u3001\u30b7\u30fc\u30ba\u30f3\u5168\u4f53\u3084\u3001\u76f8\u624b\u3054\u3068\u306e\u5e73\u5747\u7684\u306a\u30c7\u30fc\u30bf\u3092\u8981\u3059\u308b\u3068\u3082\u3063\u3068\u4fe1\u983c\u3067\u304d\u308b\u5206\u6790\u304c\u3067\u304d\u308b\u3068\u601d\u3044\u307e\u3059\u3002\n<ul>\n<li>\u30b0\u30e9\u30d5\u7406\u8ad6\u306f\u30d1\u30b9\u56de\u3057\u306e\u30c7\u30fc\u30bf\u3092\u6271\u3046\u3082\u306e\u306a\u306e\u3067\u3001\u4e00\u8a66\u5408\u306e\u30c7\u30fc\u30bf\u3060\u3068\u304b\u306a\u308a\u504f\u3063\u305f\u50be\u5411\u3057\u304b\u5206\u6790\u3067\u304d\u307e\u305b\u3093\u3002\u30b7\u30fc\u30ba\u30f3\u3092\u901a\u3057\u3066\u69d8\u3005\u306a\u8a66\u5408\u3092\u6a2a\u65ad\u7684\u306b\u5206\u6790\u3059\u308b\u3053\u3068\u3067\u3001\u30b5\u30c3\u30ab\u30fc\u30d5\u30a1\u30f3\u304c\u4eca\u307e\u3067\u306b\u611f\u3058\u3066\u3044\u306a\u304c\u3089\u8a3c\u660e\u3067\u304d\u306a\u304b\u3063\u305f\u3001\u3088\u308a\u65b0\u305f\u306a\u767a\u898b\u304c\u3042\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/li>\n<li>\u5168\u30b7\u30fc\u30ba\u30f3\u3001\u8a66\u5408\u76f8\u624b\u3054\u3068\u306e\u30c7\u30fc\u30bf\u3068\u306a\u308b\u3068\u304b\u306a\u308a\u5927\u91cf\u306a\u30d5\u30a1\u30a4\u30eb\u306b\u306a\u308a\u3001Spark\u306e\u7279\u6027\u304c\u3088\u308a\u6709\u52b9\u306b\u6a5f\u80fd\u3059\u308b\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li>\u4eca\u56de\u306e\u4f8b\u3067\u306f\u3001\u8a66\u5408\u306e\u30c7\u30fc\u30bf\u3092\u76ee\u3067\u898b\u3066\u624b\u4f5c\u696d\u3067\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002\u3088\u308a\u52b9\u7387\u7684\u306b\u591a\u304f\u306e\u5165\u529b\u30c7\u30fc\u30bf\u3092\u4f5c\u6210\u3059\u308b\u305f\u3081\u306b\u306f\u30a6\u30a7\u30d6\u4e0a\u306e\u30c7\u30fc\u30bf\u3092\u30b9\u30af\u30ec\u30a4\u30d7\u3057\u3066\u3001GraphX\u306b\u9069\u3057\u3066\u3044\u308b\u578b\u306b\u5909\u63db\u3059\u308b\u80fd\u529b\u304c\u5fc5\u8981\u306b\u306a\u308a\u307e\u3059\u3002\u3082\u3057\u304f\u306f\u3001\u30c7\u30fc\u30bf\u3092\u76f4\u63a5\u5165\u624b\u51fa\u6765\u308b\u306e\u3067\u3042\u308c\u3070\u3001GraphX\u306b\u5408\u308f\u305b\u305f\u5f62\u3067\u30c7\u30fc\u30bf\u3092\u84c4\u7a4d\u3059\u308b\u3068\u7c21\u5358\u306b\u5206\u6790\u304c\u3067\u304d\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/li>\n<\/ul>\n<ul>\n<li>\u4eca\u56de\u306f\u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u89e3\u6790\u3092\u4f8b\u3068\u3057\u307e\u3057\u305f\u304c\u3001\u4f8b\u3048\u3070\u793e\u5185\u3067\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3084\u30e1\u30fc\u30eb\u306e\u3084\u308a\u53d6\u308a\u3092\u5143\u306b\u3057\u305f\u30c1\u30fc\u30e0\u304a\u3088\u3073\u30e1\u30f3\u30d0\u30fc\u306e\u5f79\u5272\u306e\u8a55\u4fa1\u3084\u5404\u7a2e\u73fe\u5834\u3067\u306e\u30b3\u30df\u30e5\u30cb\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5206\u6790\u306b\u5fdc\u7528\u3059\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002Spark\u3068\u305d\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3053\u306e\u3088\u3046\u306a\u89e3\u6790\u3092\u4eca\u5f8c\u3082\u3063\u3068\u624b\u8efd\u306b\u884c\u3048\u308b\u3088\u3046\u306b\u306a\u308b\u3067\u3057\u3087\u3046\u3002<\/li>\n<\/ul>\n<h3>\u53c2\u8003\u8cc7\u6599<\/h3>\n<p>\uff11\uff0e\u30b0\u30e9\u30d5\u7406\u8ad6\u3092\u30b5\u30c3\u30ab\u30fc\u306b\u4f7f\u3046\u5fdc\u7528\u6848\u306f\u540d\u53e4\u5c4b\u5927\u5b66\u306a\u3069\u3001\u69d8\u3005\u306a\u56e3\u4f53\u304c\u767a\u8868\u3057\u3066\u3044\u307e\u3059\u3002 <a href=\"http:\/\/www.nagoya-u.ac.jp\/about-nu\/public-relations\/researchinfo\/upload_images\/20111229_htc.pdf\">http:\/\/www.nagoya-u.ac.jp\/about-nu\/public-relations\/researchinfo\/upload_images\/20111229_htc.pdf<\/a><br \/>\n\uff12\uff0e*\u306e\u753b\u50cf\u5143\uff1a\u3000PageRank Algorithm Reveals Soccer Teams' Strategies - MIT Technology Review\u3000(<a href=\"http:\/\/www.technologyreview.com\/view\/428399\/pagerank-algorithm-reveals-soccer-teams-strategies\/\">http:\/\/www.technologyreview.com\/view\/428399\/pagerank-algorithm-reveals-soccer-teams-strategies\/<\/a>)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. \u306f\u3058\u3081\u306b\u30fbSpark GraphX \u306e \u3054\u7d39\u4ecb \u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\u306e\u6e21\u8fba\u3067\u3059\u3002\u524d\u56de\u306e\u8a18\u4e8b\u306b\u7d9a\u3051\u3066Spark\u306e\u9b45\u529b\u3092\u3054\u7d39\u4ecb\u3057\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002Spark\u306b\u306f\u4ee5\u4e0b\u306e\u4e3b\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u304c\u3042\u308a\u307e\u3059\u3002 \u524d\u56de\u306fMLlib\u3092\u7528 [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":10828,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[51],"tags":[53,50],"class_list":["post-10827","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spark","tag-graphx","tag-spark"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3<\/title>\n<meta name=\"description\" content=\"Spark |1. \u306f\u3058\u3081\u306b\u30fbSpark GraphX \u306e \u3054\u7d39\u4ecb\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.creationline.com\/tech-blog\/10827\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"og:description\" content=\"Spark |1. \u306f\u3058\u3081\u306b\u30fbSpark GraphX \u306e \u3054\u7d39\u4ecb\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.creationline.com\/tech-blog\/10827\" \/>\n<meta property=\"og:site_name\" content=\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/creationline\" \/>\n<meta property=\"article:published_time\" content=\"2015-07-24T02:47:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-07-26T10:03:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx.png\" \/>\n\t<meta property=\"og:image:width\" content=\"864\" \/>\n\t<meta property=\"og:image:height\" content=\"296\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@creationline\" \/>\n<meta name=\"twitter:site\" content=\"@creationline\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/7d923d1c017568a1a5e66d7bb1c8764a\"},\"headline\":\"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b\",\"datePublished\":\"2015-07-24T02:47:26+00:00\",\"dateModified\":\"2015-07-26T10:03:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827\"},\"wordCount\":111,\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/graphx.png\",\"keywords\":[\"GraphX\",\"Spark\"],\"articleSection\":[\"Spark\"],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827\",\"name\":\"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/graphx.png\",\"datePublished\":\"2015-07-24T02:47:26+00:00\",\"dateModified\":\"2015-07-26T10:03:56+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/7d923d1c017568a1a5e66d7bb1c8764a\"},\"description\":\"Spark |1. \u306f\u3058\u3081\u306b\u30fbSpark GraphX \u306e \u3054\u7d39\u4ecb\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827#primaryimage\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/graphx.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/graphx.png\",\"width\":864,\"height\":296},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/10827#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"HOME\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u305d\u306e\u4ed6\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/others\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Spark\",\"item\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/others\\\/spark\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#website\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/\",\"name\":\"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3\",\"description\":\"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/#\\\/schema\\\/person\\\/7d923d1c017568a1a5e66d7bb1c8764a\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/avatar.png\",\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/avatar.png\",\"contentUrl\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/cms_x3GWkuX\\\/wp-content\\\/uploads\\\/2021\\\/12\\\/avatar.png\",\"caption\":\"admin\"},\"url\":\"https:\\\/\\\/www.creationline.com\\\/tech-blog\\\/author\\\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"Spark |1. \u306f\u3058\u3081\u306b\u30fbSpark GraphX \u306e \u3054\u7d39\u4ecb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.creationline.com\/tech-blog\/10827","og_locale":"ja_JP","og_type":"article","og_title":"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","og_description":"Spark |1. \u306f\u3058\u3081\u306b\u30fbSpark GraphX \u306e \u3054\u7d39\u4ecb","og_url":"https:\/\/www.creationline.com\/tech-blog\/10827","og_site_name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","article_publisher":"https:\/\/www.facebook.com\/creationline","article_published_time":"2015-07-24T02:47:26+00:00","article_modified_time":"2015-07-26T10:03:56+00:00","og_image":[{"width":864,"height":296,"url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_creator":"@creationline","twitter_site":"@creationline","twitter_misc":{"\u57f7\u7b46\u8005":"admin","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"4\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.creationline.com\/tech-blog\/10827#article","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/10827"},"author":{"name":"admin","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7d923d1c017568a1a5e66d7bb1c8764a"},"headline":"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b","datePublished":"2015-07-24T02:47:26+00:00","dateModified":"2015-07-26T10:03:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/10827"},"wordCount":111,"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/10827#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx.png","keywords":["GraphX","Spark"],"articleSection":["Spark"],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.creationline.com\/tech-blog\/10827","url":"https:\/\/www.creationline.com\/tech-blog\/10827","name":"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b - Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","isPartOf":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.creationline.com\/tech-blog\/10827#primaryimage"},"image":{"@id":"https:\/\/www.creationline.com\/tech-blog\/10827#primaryimage"},"thumbnailUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx.png","datePublished":"2015-07-24T02:47:26+00:00","dateModified":"2015-07-26T10:03:56+00:00","author":{"@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7d923d1c017568a1a5e66d7bb1c8764a"},"description":"Spark |1. \u306f\u3058\u3081\u306b\u30fbSpark GraphX \u306e \u3054\u7d39\u4ecb","breadcrumb":{"@id":"https:\/\/www.creationline.com\/tech-blog\/10827#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.creationline.com\/tech-blog\/10827"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/10827#primaryimage","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2015\/07\/graphx.png","width":864,"height":296},{"@type":"BreadcrumbList","@id":"https:\/\/www.creationline.com\/tech-blog\/10827#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"HOME","item":"https:\/\/www.creationline.com\/tech-blog"},{"@type":"ListItem","position":2,"name":"\u305d\u306e\u4ed6","item":"https:\/\/www.creationline.com\/tech-blog\/others"},{"@type":"ListItem","position":3,"name":"Spark","item":"https:\/\/www.creationline.com\/tech-blog\/others\/spark"},{"@type":"ListItem","position":4,"name":"Spark GraphX\u3092\u4f7f\u3063\u305f\u30b0\u30e9\u30d5\u5206\u6790: \u30b5\u30c3\u30ab\u30fc\u30c1\u30fc\u30e0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u30b0\u30e9\u30d5\u7406\u8ad6\u3067\u89e3\u3044\u3066\u307f\u308b"}]},{"@type":"WebSite","@id":"https:\/\/www.creationline.com\/tech-blog\/#website","url":"https:\/\/www.creationline.com\/tech-blog\/","name":"Tech Blog\uff5c\u30af\u30ea\u30a8\u30fc\u30b7\u30e7\u30f3\u30e9\u30a4\u30f3","description":"\u30a2\u30b8\u30e3\u30a4\u30eb\uff06DevOps\u3001\u30af\u30e9\u30a6\u30c9\u30cd\u30a4\u30c6\u30a3\u30d6\u3001AI\uff06LLM\u306e\u5148\u7aef\u6280\u8853","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.creationline.com\/tech-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Person","@id":"https:\/\/www.creationline.com\/tech-blog\/#\/schema\/person\/7d923d1c017568a1a5e66d7bb1c8764a","name":"admin","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/12\/avatar.png","url":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/12\/avatar.png","contentUrl":"https:\/\/www.creationline.com\/tech-blog\/cms_x3GWkuX\/wp-content\/uploads\/2021\/12\/avatar.png","caption":"admin"},"url":"https:\/\/www.creationline.com\/tech-blog\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/10827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/comments?post=10827"}],"version-history":[{"count":0,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/posts\/10827\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media\/10828"}],"wp:attachment":[{"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/media?parent=10827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/categories?post=10827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.creationline.com\/tech-blog\/wp-json\/wp\/v2\/tags?post=10827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}