Spark组件之GraphX学习6--随机图生成和出度入度等信息显示
2016-05-03 21:00
330 查看
更多代码请见:https://github.com/xubo245/SparkLearning
1解释
简单不详述
2.代码:
/**
* @author xubo
* ref http://spark.apache.org/docs/1.5.2/graphx-programming-guide.html * time 20160503
*/
package org.apache.spark.graphx.learning
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.graphx.Graph
import org.apache.spark.graphx.VertexRDD
import org.apache.spark.graphx.util.GraphGenerators
object GraphGeneratorsAndIndegreeOutdegree {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("GraphOperatorsStructuralMask").setMaster("local[4]")
// Assume the SparkContext has already been constructed
val sc = new SparkContext(conf)
// Import random graph generation library
// Create a graph with "age" as the vertex property. Here we use a random graph for simplicity.
val graph: Graph[Double, Int] =
GraphGenerators.logNormalGraph(sc, numVertices = 5).mapVertices((id, _) => id.toDouble)
// Compute the number of older followers and their total age
println("Graph:");
println("sc.defaultParallelism:" + sc.defaultParallelism);
println("vertices:");
graph.vertices.collect.foreach(println(_))
println("edges:");
graph.edges.collect.foreach(println(_))
println("count:" + graph.edges.count);
println("\ninDegrees");
graph.inDegrees.foreach(println)
println("\noutDegrees");
graph.outDegrees.foreach(println)
println("\nreverse");
println("\nreverse vertices");
graph.reverse.vertices.collect.foreach(println)
println("\nreverse edges");
graph.reverse.edges.collect.foreach(println)
println("\nreverse inDegrees");
graph.reverse.inDegrees.foreach(println)
println("\nreverse inDegrees");
graph.reverse.outDegrees.foreach(println)
}
}
reverse主要是将边的方向反向
3.结果:
Graph:
sc.defaultParallelism:4
vertices:
(4,4.0)
(0,0.0)
(1,1.0)
(2,2.0)
(3,3.0)
edges:
Edge(0,0,1)
Edge(0,2,1)
Edge(0,2,1)
Edge(0,3,1)
Edge(1,3,1)
Edge(1,4,1)
Edge(1,4,1)
Edge(1,4,1)
Edge(2,0,1)
Edge(2,3,1)
Edge(2,3,1)
Edge(2,4,1)
Edge(3,1,1)
Edge(3,3,1)
Edge(4,0,1)
Edge(4,1,1)
Edge(4,2,1)
Edge(4,4,1)
count:18
inDegrees
(3,5)
(1,2)
(4,5)
(0,3)
(2,3)
outDegrees
(2,4)
(3,2)
(1,4)
(4,4)
(0,4)
reverse
reverse vertices
(4,4.0)
(0,0.0)
(1,1.0)
(2,2.0)
(3,3.0)
reverse edges
Edge(0,0,1)
Edge(2,0,1)
Edge(2,0,1)
Edge(3,0,1)
Edge(3,1,1)
Edge(4,1,1)
Edge(4,1,1)
Edge(4,1,1)
Edge(0,2,1)
Edge(3,2,1)
Edge(3,2,1)
Edge(4,2,1)
Edge(0,4,1)
Edge(1,3,1)
Edge(1,4,1)
Edge(2,4,1)
Edge(3,3,1)
Edge(4,4,1)
reverse inDegrees
(4,4)
(0,4)
(2,4)
(1,4)
(3,2)
reverse inDegrees
(2,3)
(1,2)
(3,5)
(4,5)
(0,3)
参考
【1】 http://spark.apache.org/docs/1.5.2/graphx-programming-guide.html
【2】https://github.com/xubo245/SparkLearning
1解释
简单不详述
2.代码:
/**
* @author xubo
* ref http://spark.apache.org/docs/1.5.2/graphx-programming-guide.html * time 20160503
*/
package org.apache.spark.graphx.learning
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.graphx.Graph
import org.apache.spark.graphx.VertexRDD
import org.apache.spark.graphx.util.GraphGenerators
object GraphGeneratorsAndIndegreeOutdegree {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("GraphOperatorsStructuralMask").setMaster("local[4]")
// Assume the SparkContext has already been constructed
val sc = new SparkContext(conf)
// Import random graph generation library
// Create a graph with "age" as the vertex property. Here we use a random graph for simplicity.
val graph: Graph[Double, Int] =
GraphGenerators.logNormalGraph(sc, numVertices = 5).mapVertices((id, _) => id.toDouble)
// Compute the number of older followers and their total age
println("Graph:");
println("sc.defaultParallelism:" + sc.defaultParallelism);
println("vertices:");
graph.vertices.collect.foreach(println(_))
println("edges:");
graph.edges.collect.foreach(println(_))
println("count:" + graph.edges.count);
println("\ninDegrees");
graph.inDegrees.foreach(println)
println("\noutDegrees");
graph.outDegrees.foreach(println)
println("\nreverse");
println("\nreverse vertices");
graph.reverse.vertices.collect.foreach(println)
println("\nreverse edges");
graph.reverse.edges.collect.foreach(println)
println("\nreverse inDegrees");
graph.reverse.inDegrees.foreach(println)
println("\nreverse inDegrees");
graph.reverse.outDegrees.foreach(println)
}
}
reverse主要是将边的方向反向
3.结果:
Graph:
sc.defaultParallelism:4
vertices:
(4,4.0)
(0,0.0)
(1,1.0)
(2,2.0)
(3,3.0)
edges:
Edge(0,0,1)
Edge(0,2,1)
Edge(0,2,1)
Edge(0,3,1)
Edge(1,3,1)
Edge(1,4,1)
Edge(1,4,1)
Edge(1,4,1)
Edge(2,0,1)
Edge(2,3,1)
Edge(2,3,1)
Edge(2,4,1)
Edge(3,1,1)
Edge(3,3,1)
Edge(4,0,1)
Edge(4,1,1)
Edge(4,2,1)
Edge(4,4,1)
count:18
inDegrees
(3,5)
(1,2)
(4,5)
(0,3)
(2,3)
outDegrees
(2,4)
(3,2)
(1,4)
(4,4)
(0,4)
reverse
reverse vertices
(4,4.0)
(0,0.0)
(1,1.0)
(2,2.0)
(3,3.0)
reverse edges
Edge(0,0,1)
Edge(2,0,1)
Edge(2,0,1)
Edge(3,0,1)
Edge(3,1,1)
Edge(4,1,1)
Edge(4,1,1)
Edge(4,1,1)
Edge(0,2,1)
Edge(3,2,1)
Edge(3,2,1)
Edge(4,2,1)
Edge(0,4,1)
Edge(1,3,1)
Edge(1,4,1)
Edge(2,4,1)
Edge(3,3,1)
Edge(4,4,1)
reverse inDegrees
(4,4)
(0,4)
(2,4)
(1,4)
(3,2)
reverse inDegrees
(2,3)
(1,2)
(3,5)
(4,5)
(0,3)
参考
【1】 http://spark.apache.org/docs/1.5.2/graphx-programming-guide.html
【2】https://github.com/xubo245/SparkLearning
相关文章推荐
- iOS延迟关闭
- 突破第一扇区的限制
- hdu 3336 Count the string
- 支持向量机通俗导论(理解SVM的三层境界)
- Universal-Image-Loader中的线程模型
- 默慈金数
- POJ 2226 Muddy Fields(最小点覆盖)
- 【并查集】HDU1232畅通工程
- 方法里的局部内部类为什么不能访问一般的方法里的局部变量?
- HTTP安全相关的一些简单总结
- 第3周项目4-百钱买白鸡
- HashTable 和 HashMap的区别 StringBuffer 和Builder的区别
- Catalan数
- Windows原生运行Linux的技术细节
- 静悄悄地生活
- 非互质的中国剩余定理模板(1573)
- tomcat各文件作用及配置详解
- 面向对象--多态
- Android Studio使用基础和常用快捷键
- 在eclipse操作hbase时,遇到的问题