educoder-Spark GraphX—寻找社交媒体中的“影响力用户”

第1关:认识Pregel API

简介

        Spark GraphX中提供了方便开发者的基于谷歌Pregel API的迭代算法,因此可以用Pregel的计算框架来处理Spark上的图数据。GraphX的Pregel API提供了一个简明的函数式算法设计,用它可以在图中方便的迭代计算,如最短路径、关键路径、n度关系等,也可以通过对一些内部数据集的缓存和释放缓存操作来提升性能。

编程要求

        根据图1运用pregel函数找出距离Ann最远的顶点。补全代码中的内容,使得程序运行结果如预期输出。具体请参见后续测试样例。

测试说明

        平台会对你编写的代码进行测试:

        测试输入:
        预期输出:

 

import org.apache.log4j.{Level, Logger}
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.graphx._

object farthest_distance{
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("farthest distance").setMaster(&#
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
⼤数据技术概述 ⼤数据的概念 4V:⼤量化volume、价值密度低value、快速化velocity、多样化variety。⼤量化每两年增长⼀倍,到了2020年,全球就会有35ZB数据 量,Byte->KB->MB->GB->TB->PB->EB->ZB。多样化,结构化数据,保存在关系数据库,具有规范的⾏和列的结构数据,只占⼈类数据 量10%不到。90%是⾮结构化数据,存储在⾮关系数据库。快速化,数据有价值必须快速处理,⼀秒定律,数据从⽣成到决策响应仅需 要⼀秒,时间延长不会有商业价值,例如推荐系统。价值密度低,⼤量数据有价值的⽐较少,但是单点价值⽐较⾼ ⼤数据影响 数据库专家jim gray,⼈类从诞⽣以来,经历了四种研究范式。2010年后,进⼊⼤数据时代以后,是以数据为⼼的研究范式。第⼀种实 验,⼀开始科研就是做实验观察;第⼆种理论,发明了⽜顿定律、⼏何理论由理论去研究科学问题;第三阶段,⼀九四⼏年计算机开始发明 以后,进⼊以计算为⼼的时代,靠计算可以帮助我们解决相关的科学问题。以计算为⼼,事先已经知道问题是什么,以数据为⼼事先 问题不知,只有⼀堆数据,从⼤量数据去发现问题,再靠数据去解决问题,全部靠数据去驱动。我们思维⽅式⾃从⼤数据时代到来后,发 ⽣了值的变迁。全样⽽⾮抽样,以前采⽤统计学抽样⽅式(存储设备贵、存储数据少、CPU和技术能⼒不强、⽆法短时间迅速计算),⼤数 据时代有⾜够能⼒存储⾜够算例去计算。效率⽽⾮精确,不苛求精确度,全样数据不存在误差放⼤问题,追求速度。相关⽽⾮因果,追求相 关性,⽐如相关性是推荐系统的核⼼,有相关性⾜够带来商业价值。 ⼤数据的关键技术 数据流程包括数据采集、数据存储与管理、数据处理与分析、数据隐私与安全。⼤数据的关键技术两⼤核⼼,分布式存储和分布式处理,解 决数据存储和数据⾼校计算问题。分布式存储:⾕歌GFS和开源实现HDFS->⾕歌Big Table和开源版本Hase->NoSQL(键值、列族、图 形、⽂档数据库)->NewSQL。分布式处理:MapReduce->Spark->Flink。 ⼤数据计算模式 不同的计算模式需要使⽤不同的产品。第⼀个批处理,MapReduce和Spark⾯向批处理。第⼆个流计算,流数据像溪⽔⼀样不断到达,每 次量可能不⼤,但是会连续不断的到达。流数据要求实时处理,给出实时响应(秒级或毫秒级),否则分析结果会失去商业价值。流计算代 表产品有S4、Storm、Flume、Puma、DStream、银河流数据处理平台。第三种模式是图计算,有些应⽤场景⽐较适合图来建模,⽐如 地理信息系统(快递)、微博微信社交群体,⽹友是点,点赞就建⽴边,会发现哪些⼩朋友圈⽐较紧密。图计算代表软件:Google Pregel、GraphX、Giraph、Hma、PowerGraph、GoldenOrb。第四种场景是查询分析计算,代表产品:Google Dremel、Hive、 Cassandra、Impala。 ⼤数据技术之Hadoop Hadoop⽣态系统图 HDFS存储⾮结构化数据,⾯向批处理,YARN资源调度和管理框架,计算所需要底层内部CPU资源。MapReduce数据的计算。数据仓库 Hive本⾝不保存数据,数据保存在底层HDFS,本⾝是编程接⼝,把你写的SQL语句⾃动转换对HDFS查询分析,得到结果。Pig数据流处 理,数据清洗转换。Mahout数据挖掘的算法库,实现常⽤数据挖掘算法(分类、聚类、回归等),调⽤接⼝,传⼊参数,减少⼯作量,针 对海量数据进⾏数据挖掘分析。Ambari⾃动化的安装部署配置管理Hadoop集群的。Zookeeper分布式协作服务,选管家等,专门做分布 式协调⼀致性⼯作。HBase实时性计算,分布式数据库。Flume⽇志采集,Sqoop数据库ETL(抽取、转换、加载),完成Hadoop系统组 件之间的互通,Hadoop系统组件当数据和关系数据库当数据之间相互导⼊导出(HDFS数据可以导⼊MySql当去)。 MapReduce,Map函数和Reduce函数,编程容易,屏蔽底层分布式并⾏编程细节。采⽤分⽽治之思想,并⾮所有任务都可以分⽽治之。 YARN实现⼀个集群多个框架,例如⼀千台机器,同时部署了三个框架(MapReduce、Storm、Impala),会产⽣打架,有三个管家去底 层强CPU资源。如果三个产品只接受⼀个管家,就不会打架。出现了YARN资源调度和管理框架。 ⼤数据技术之Spark Spark架构图 Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core 之上的。 Spark SQL:提供通过Apache Hi
### 回答1: Spark GraphX是一个基于Apache Spark的图计算框架,可以用于处理大规模的图数据。在社交媒体,我们可以将用户和他们之间的关系表示为一个图,然后使用Spark GraphX寻找影响力用户”。 具体来说,我们可以使用PageRank算法来计算每个用户影响力得分,得分越高的用户就越有可能是“影响力用户”。除此之外,我们还可以使用其他的图算法来寻找社交媒体的“影响力用户”,比如Betweenness Centrality、Closeness Centrality等等。 总之,Spark GraphX是一个非常强大的工具,可以帮助我们在海量的社交媒体数据寻找影响力用户”,从而更好地了解用户行为和社交网络结构。 ### 回答2: 随着社交媒体的普及,影响力用户已经成为了一个非常热门的话题。基于Spark GraphX框架,我们可以打造一个影响力用户识别的系统,用于快速地寻找社交媒体的“影响力用户”。 首先,我们需要明确“影响力用户”是什么。在社交媒体影响力用户通常是指那些拥有大量粉丝或者关注者的用户,他们的言论和行为可以对其他用户产生一定的影响力,进而引导其他用户的行为和思想。因此,影响力识别系统需要能够准确地衡量一个用户影响力大小,并以此判断其是否为影响力用户。 在Spark GraphX,我们可以将社交媒体看作是一个大规模的有向图,每个用户都是一个节点,他们之间的关注关系可以看作是边。通过分析这个有向图,我们可以得到每个用户的各种属性,并以此来衡量其影响力。以下是一个基本的思路: 1.节点度数:节点的度数(即入度和出度之和)可以反映其在社交媒体的受欢迎程度和活跃程度。一个节点的出度表示其关注其他用户的数量,一个节点的入度表示被其他用户关注的数量。节点的度数越高,说明该用户社交媒体越活跃,也就越有可能成为影响力用户。 2. PageRank:PageRank算法是Google公司创始人之一Larry Page提出的一种用于衡量网页重要性的算法,也可以用于衡量节点重要性。在社交媒体,如果一个用户的关注者也是其他用户的关注者,那么他可以被认为是社交媒体的“骨干用户”,对他的PageRank值进行一定的加权可以更准确地反映他在社交媒体影响力。 3.社区发现算法:社交媒体存在着大量的社区,同属一个社区的用户之间往往有着比较紧密的联系。因此,通过社区发现算法可以将用户划分到不同的社区,以此来识别影响力用户。对于一个社交媒体影响力用户来说,他往往与其他影响力用户之间存在着比较紧密的联系,因此可以通过社区发现算法来自动地识别他们。 总之,基于Spark GraphX框架,我们可以通过分析社交媒体的有向图,结合各种算法来识别影响力用户。这个系统可以对用户进行综合评估,从多个角度来衡量用户影响力,从而提高识别的准确性。 ### 回答3: 随着社交媒体在日常生活的普及,越来越多的企业和品牌开始关注社交媒体影响力,希望在海量用户找到最具影响力用户并进行营销。而Spark GraphX则是一款基于Spark平台的分布式图处理系统,可以用来处理图状数据,适用于社交网络、推荐系统、网络安全等领域。因此,使用Spark GraphX寻找社交媒体的“影响力用户”是非常可行的。 首先,我们需要构建社交媒体的关系网络图,其节点是用户,边代表用户之间的关系。这一过程可以通过爬取用户的粉丝列表,或是利用社交媒体提供的API来获取用户之间的关系数据。接着,我们可以运用Spark GraphX来构建图模型,并对图模型进行分析和处理。 在分析过程,可以运用图的度心度、介数心度、紧密心度等指标来度量每个节点的影响力。度心度衡量了一个节点连接的数量,介数心度衡量了一个节点在最短路径上的重要性,紧密心度衡量了一个节点到其他节点的距离。通过这些指标,就可以找出最具影响力用户,例如度心度最高的用户可能是社交媒体上最受欢迎的用户,介数心度最高的用户可能是社交媒体上最具影响力的意见领袖。 除了分析每个节点的影响力指标,我们还可以利用社区发现算法来找到社交媒体上的群体。因为影响力的传播往往来自用户所处的社交网络,找出具有相同兴趣、话题的群体可以帮助企业更有效地进行影响力营销。使用Spark GraphX,我们可以运用Louvain等算法来进行社区发现,并找出一些关键用户或节点来实现企业目的。 综上所述,利用Spark GraphX寻找社交媒体的“影响力用户”是非常可行的。通过构建关系网络图,并在图模型运用多种指标和算法进行分析处理,可以找到最具影响力用户和群体,为企业进行社交媒体营销提供有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值