技术原理

Spark GraphX教程-Apache Spark中的图形分析

GraphX是Apache Spark用于图形和图形并行计算的API。GraphX将ETL(Extract,Transform&Load)过程、探索性分析和迭代图计算统一在一个系统中。在Facebook的好友、LinkedIn的连接、互联网的路由器、天体物理学中星系与恒星的关系以及谷歌的地图上都可以看到图表的使用。尽管图计算的概念看起来非常简单,但是图的应用实际上是无限的,例如在灾难检测、银行、股票市场、银行和地理系统中的用例。学习这个API的使用是Apache Spark课程的重要组成部分,通过这个博客,我们将学习Spark GraphX的概念,它的特性和组件通过示例和一个完整的使用GraphX的飞行数据分析用例。

我们将在这个Spark GraphX博客中讨论以下主题:

什么是图形?图形计算的用例什么是Spark GraphX?Spark GraphX的特点是通过示例了解GraphX用例——使用GraphX进行飞行数据分析什么是图形?”图是一种数学结构,相当于一组对象,其中一些对象对在某种意义上是相关的。这些关系可以用构成图的边和顶点来表示。顶点表示对象,边显示这些对象之间的各种关系。

Graph Concepts - Spark GraphX Tutorial - Edureka图:Spark GraphX教程-计算机科学中

图形中的顶点、边和三元组,图是一种抽象的数据类型,旨在实现数学中的无向图和有向图的概念,特别是图论的领域。图的数据结构也可以与每一条边关联一些边值,例如符号标签或数字属性(成本、容量、长度,等)图计算的

用例

以下用例为图计算提供了一个视角,并进一步扩展了使用图实现其他解决方案的范围。

灾难检测系统Disaster Detection - Spark GraphX Tutorial - Edureka

图可用于检测飓风、地震、海啸等灾难,森林火灾和火山,以提供警告,以提醒人们。

网页排名Page Rank - Spark GraphX Tutorial - Edureka网页排名可用于寻找任何网络,如论文引用网络或社会媒体网络的影响力。金融欺诈检测Financial Fraud Detection - Spark GraphX Tutorial - Edureka

图形分析可用于监控金融交易,并检测参与金融欺诈和洗钱的人员。

业务分析Business Analysis - Spark GraphX Tutorial - Edureka

图形与机器学习一起使用,有助于了解客户购买趋势。例如Uber、麦当劳,

地理信息系统Geographic Information System - Spark GraphX Tutorial - Edureka

图形被广泛用于开发诸如分水岭划分和天气预报等地理信息系统的功能。

Google PregelGoogle Pregel - Spark GraphX Tutorial - Edureka

Pregel是Google的可扩展和容错平台,具有足够的API灵活表达任意图算法。

什么是Spark GraphXGraphX是用于图形和图形并行计算的Spark API。它包括越来越多的图形算法和生成器,以简化图形分析任务。

Property Graph - Spark GraphX Tutorial - Edureka图形用一个弹性的分布式属性图扩展Spark RDD。属性图是一个有向的多重图,可以并行地有多个边。每个边和顶点都有与之关联的用户定义的属性。平行边允许同一个顶点之间有多个关系。

Spark GraphX的特征

Spark GraphX的特征是:

灵活性:Spark GraphX可以同时处理图形和计算。GraphX将ETL(提取、转换和加载)、探索性分析和迭代图计算统一在一个系统中。我们可以查看与图形和集合相同的数据,tran//导入必要的类进口org.apache.spark网站.rdd.rdd公司进口org.apache.spark网站.util.int参数进口org.apache.spark网站.图形_进口org.apache.spark网站.graphx.util.GraphGenerators图形生成器val vertexRDD:RDD[(长,(字符串,整数))]=sc.并行化(垂直排列)val Edge RDD:RDD[Edge[Int]=sc.并行化(埃德加雷)graph.vertices.filter图.vertices.filter{案例(id,(name,age))=>年龄>30}.收藏.foreach{case(id,(name,age))=>println(s“$name是$age”)}弗兰50岁了Charlie是65

显示边缘:让我们看看Twitter上哪个人喜欢谁。

对于(三重态用户(name,age,0,0)}//填写学位信息val用户图=initialUserGraph.outerJoinVertices(initialUserGraph.indees) {}.outerJoinVertices外部顶点(initialUserGraph.outDegrees) {}println(s“用户$id被调用${property.name属性}并被${属性.inDeg}人。”)}

上述代码的输出如下:

用户1称为Alice,2人喜欢。用户3被称为Charlie,1个人喜欢它。用户4被称为David,1个人喜欢它。用户6被称为Fran,2个人喜欢它。”

“最老的追随者:我们也可以根据他们的特点对追随者进行分类。让我们按年龄查找每个用户最老的追随者。

//为每个用户查找最老的跟随者//对于每个边,使用源顶点的属性向目标顶点发送消息//要组合消息,请为较老的跟随者获取消息)查理是鲍勃最老的追随者。埃德是查理最老的追随者。埃德没有追随者。查理是弗兰最老的追随者。//导入必要的类进口org.apache.spark网站._...目标机场{ def main(参数:数组[字符串]){//创建案例类航班案例类航班(dofM:字符串, dofW:字符串, ... ,距离:国际)//定义Parse String函数以将输入解析为Flight类def parseFlight(str:String):飞行={val线=str.分裂(",")航班(第(0)行,第(1)行。。。,行(16.toInt)val conf=new SparkConf().setAppName(“机场”).setMaster(“本地[2]”)val sc=新SparkContext(conf)//将数据加载到RDD中值文本RDD=sc.textFile文件(“/家庭/爱德华卡/用例/机场/airportdataset.csv")//将CSV行的RDD解析为飞行类的RDDval flightsRDD=将飞行解析为文本RDD//创建ID和名称为的机场RDD机场.take(一)//为printlns定义一个名为nowhere的默认顶点并映射Airport IDval nowhere=“无处”val airportMap=使用地图功能。托利斯特托马普//使用sourceID、destinationID和distance创建路由RDDval routes=航班。使用Map函数。distinct路线.take(二)//使用sourceID、destinationID和distance创建边缘RDD边缘(一)//定义图形并显示一些顶点和边val graph=图表(机场、边缘和无处)图.边.take(二)//查询1-查找机场总数//查询2-计算路线总数?//查询3-计算距离超过1000英里的路线graph.edges.filter图.edges.filter{获取边缘距离)=>距离>1000}。获取(3)//类似地为下面的查询编写Scala代码//查询4-排序并打印最长的路由//查询6-获取IDs10397和12478的机场名称//查询7-找到入境航班最多的机场//查询8-查找出港航班最多的机场//查询10-按排名对机场进行排序//查询12-找到航班成本最低的航线//查询13-查找机场及其最低飞行成本

用例-可视化结果:

我们将使用Google Data Studio可视化我们的分析。Google Data Studio是Google Analytics 360套件下的一个产品。我们将使用地理地图服务在美国地图上的各个位置上绘制机场地图,并显示度量数量。

显示每个机场的航班总数显示每个机场的目的地航线的度量和显示所有航班的总延误每个机场的航班数

Graph Concepts - Spark GraphX Tutorial - Edureka2”

Spark GraphX博客到此结束。我希望你喜欢阅读它,并发现它的资料丰富。请查看我们的Apache Spark系列中有关Spark访谈问题的下一篇博客,以便在Apache Spark中为市场做好准备。

我们推荐以下来自Edureka的Apache Spark培训飞行数据分析视频,首先是:

Apache Spark培训;Spark GraphX飞行数据分析;Edureka

有一个问题我们?请在评论部分提及它,如果您希望学习Spark并在Spark领域建立职业生涯,并通过真实的用例构建专业知识来使用RDD、Spark流、SparkSQL、MLlib、GraphX和Scala执行大规模数据处理,我们将最早联系您。

,请查看我们的交互式实时在线ApacheSpark认证培训,该培训提供24*7支持,指导您在整个学习期间的学习

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
人工智能机器人小机器人 投稿者
我还没有学会写个人说明!
最近文章
  • * 没有更多文章了
  • 热门搜索

    分类目录