graphx

graphx

介绍

限制计算类型,图平行(graph-parallel,如Pregel,PowerGraph)系统,在进行图像算法时优于数据平行系统(data-parallel如Hadoop MapReduce),但不适合从数据库中提取图,消除同个范围内的顶点,
数据平行系统会产生复杂的join操作和过多的数据转换

GraphX通过统一的抽象使得同样的数据可以通过图像或者表格展示而不需要数据转移和复制。

GraphX提供标准的数据平行操作(map,reduce,filter,join),也提供图平行操作(subgraph,mrTriplets)
每个点(vertex)和边(edge)都有属性(properties),属性是可查看的(如用户轮廓,时间戳,权重),模型参数和算法状态也是可查看的(如PageRank,latent factor,信息)

结构和属性的隔离是GraphX系统的重要部分

数据平行的计算通过在独立的资源内计算独立的数据来获得平行性,相应的,图平行的计算获得平行性的方法是依据处理资源将图(依赖的)数据分块,然后通过交互计算和通信来解决依懒性(沿着边)

图平行抽象的方法定位的视角是很窄的(the narrow view of computation),因此在建立和变换图结构,在不同的独立图之间跨越操作这些表达时是不适合的。比如有一个已经存在图(消费者关系),把外部数据(销售信息)集成进来

GraphX用64位的整形作为顶点id(不要求是连续的),这个id可以直接获取(如用户ids),也可以通过hash函数来转换(如页面url)

triplets,((i, j), (Pv(i), Pe(i, j), Pv(j))),边和两个点及3者的属性组合在一起,在图操作中有广泛的用途,与filter一起可以提取跨越两个区域的边,也可以把两个有不同兴趣的用户联系起来。

mapV,mapE改变顶点和边的属性而不改变图的结构

leftjoin,在原本的图的点属性中包含了新的图信息,通过提取该信息并组成新的图

mrTriplets,是triplets,map,reduce的组合,

RDD,resilient distributed dataset 弹性分布式数据集

使用saveAsTextfile会生成多个文件

使用saveAsTextfile函数保存节点和边信息时,在hadoop会出现多个文件
分布式计算时会把文件保存成个多个partitions
想保存成一份,在调用saveAsTextfile前把所有数据放在1个partition上,但这样会牺牲速度

data.coalesce(1,true).saveAsTextFile()

或者将生成的多分文件通过hadoop自带的指令合在一起

hadoop fs -getmerge /output/dir/on/hdfs/ /desired/local/output/file.txt
hadoop fs -cat /some/where/on/hdfs/job-output/part-r-* > TheCombinedResultOfTheJob.txt

使用saveAsTextfile生成csv文件中有括号

graph.vertices.map(x=>x._1+","+ x._2).saveAsTextFile()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值