我正在试验Spark,我对Scala和GraphX是新手。
我正在制作一个由电影和演员组成的双向网络。我的输入是一个空格分隔的文件,每行有一条边,第一列是电影ID,第二列是演员ID,这里是一个摘录:
movie actor
1 1
2 1
2 2
3 1
3 3
3 4
3 5
3 6
3 7
4 1
val edges: RDD[Edge[String]] = sc.textFile("file:///home/actorMovie").map { line =>
val fields = line.split(" ")
Edge(fields(0).toLong, fields(1).toLong)
}
edges.take(10)
res8: Array[org.apache.spark.graphx.Edge[String]] = Array(Edge(1,1,null), Edge(2,1,null), Edge(2,2,null), Edge(3,1,null), Edge(3,3,null), Edge(3,4,null), Edge(3,5,null), Edge(3,6,null), Edge(3,7,null), Edge(4,1,null))
你现在得到的不是二部图。要使它成为一个有效的图,您必须进行大量的转换。做到这一点最简单的方法是使用Dataframes:
val df = spark.read
.option("delimiter", " ") // if there is a header
.option("header", "true")
.csv(path)
.toDF("movie", "actor")
一旦有了数据自联接和聚合,如下所示:
import org.apache.spark.sql.functions._
val e = df.alias("df1")
.join(df.alias("df2"), "movie")
// Sort soruce and destination
.groupBy(
greatest("df1.actor", "df2.actor").as("srcId"),
least("df1.actor", "df2.actor").as("dstId"))
.agg(count("*").as("attr"))
这可以转换为graph
或graphframe
,正如我在这里所展示的,如何获得将DataFrame转换为特定的rdd?。
val dfe = df.select(
concat(lit("m"), $"movie").as("movie"),
concat(lit("a"), $"actor").as("actor"))
import graphframes._
val gf = GraphFrame.fromEdges(dfe.toDF("src", "dst"))
然后可以使用消息传递或图模式匹配来查找两个跳邻居。
kubernetes 要求集群内各节点能通过 Pod 网段互联互通,本文档介绍使用 Flannel 在所有节点 (Master、Node) 上创建互联互通的 Pod 网段的步骤。 使用的变量 本文档用到的变量定义如下: $ export NODE_IP=10.64.3.7 # 当前部署节点的 IP $ # 导入用到的其它全局变量:ETCD_ENDPOINTS、FLANNEL_ETCD_PREFIX
网络质量分析师, 1.自我介绍 2.你说有团队协作能力怎么体现的,简单说一下 3.目前投了哪些?回答有互联网公司,银行,运营商 4.感觉你投的公司跨度有点大,说一下 5.北京户口是刚需吗 然后换了个人 1.你是计算机专业的,为什么没什么项目 然后就一直问的为什么没有什么软件的项目经历 但是我就是没做项目,实在没办法 感觉回答的很不好
composer network deploy实用程序用于将业务网络档案从本地磁盘部署到Hyperledger Fabric v1.0网络。在使用此命令之前,请阅读部署和更新业务网络文档。 composer network deploy -a digitalPropertyNetwork.bna -A admin -S -c PeerAdmin@hlfv1 -f admincard 选项 com
在部署业务网络定义之前,必须将其打包到业务网络档案(.bna)文件中。composer archive create命令用于从磁盘上的业务网络定义文件夹创建业务网络档案文件。 一旦创建了业务网络档案文件,就可以使用composer runtime install命令和composer network start命令将其部署到运行时。 例如: composer runtime install -n
FreeBSD 是目前以高性能网络服务为目的而部署范围最广的操作系统之一。 讨论这些话题的章节包括: 串口通讯 PPP 和以太网上的 PPP 电子邮件 运行网络服务 防火墙 其他进阶网络话题 这些章节主要供您在需要时参考。 不必按特定的顺序来阅读它们, 此外,您开始在网络中使用 FreeBSD 之前也不需要先把它们都读完。
Even the smallest project will interact with at the very least two blockchain nodes: One on the developer’s machine, like Ganache or Truffle Develop, and the other representing the network where the d