graphx操作实例03-导入顶点和边生成图
2016-01-08 15:00
246 查看
导入顶点和边的信息,使用Graph生成图
import org.apache.spark._ import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.graphx._ import org.apache.spark.rdd.RDD object Day04 { def main(args: Array[String]) = { val conf = new SparkConf() val sc = new SparkContext("local", "test", conf) // day04-vertices.csv // 1,Taro,100 // 2,Jiro,200 // 3,Sabo,300 val vertexLines: RDD[String] = sc.textFile("graphdata/day04-vertices.csv") val vertices: RDD[(VertexId, (String, Long))] = vertexLines.map(line => { val cols = line.split(",") (cols(0).toLong, (cols(1), cols(2).toLong)) }) // day04-edges.csv // 1,2,100,2014/12/1 // 2,3,200,2014/12/2 // 3,1,300,2014/12/3 val format = new java.text.SimpleDateFormat("yyyy/MM/dd") val edgeLines: RDD[String] = sc.textFile("graphdata/day04-edges.csv") val edges:RDD[Edge[((Long, java.util.Date))]] = edgeLines.map(line => { val cols = line.split(",") Edge(cols(0).toLong, cols(1).toLong, (cols(2).toLong, format.parse(cols(3)))) }) val graph:Graph[(String, Long), (Long, java.util.Date)] = Graph(vertices, edges) println("\n\n~~~~~~~~~ Confirm Edges Internal of graph ") graph.edges.collect.foreach(println(_)) // Edge(1,2,(100,Mon Dec 01 00:00:00 EST 2014)) // Edge(2,3,(200,Tue Dec 02 00:00:00 EST 2014)) // Edge(3,1,(300,Wed Dec 03 00:00:00 EST 2014)) println("\n\n~~~~~~~~~ Confirm Vertices Internal of graph ") graph.vertices.collect.foreach(println(_)) // (2,(Jiro,200)) // (1,(Taro,100)) // (3,(Sabo,300)) sc.stop } }
相关文章推荐
- socket编程(TCP、UDP)
- netty5源码分析(5)--学习笔记
- 解压缩和生成ext4文件镜像 比如:system.img、pctool.img等
- R语言画图基础参数设置
- Android View 事件分发机制详解
- Linux查看某个文件被哪些进程PID占用
- linux学习笔记----4
- iOS Newbie - Xcode 7 & iOS 9 页面间传值
- 21-《电子入门趣谈》第四章_自己制作电路板-4.2洞洞板的介绍和经典案例使用教程
- Nginx去除版本号
- linux tail命令的使用方法详解(转)
- 带边框的文本框TextView
- 开发APP不搞清楚这20个问题,必然沦为一场灾难
- 经典算法的Python实现(3)
- 异或运算
- 华为机试——求数组中的第一大和第二大数
- Redis常见的性能问题和解决方法
- SpringMVC搭配Freemarker实例解析
- 找到合适的方案记录服务端日志
- 自下而上归并排序 数组实现