下载APP 编程狮,随时随地学编程
返回 首页

Spark 编程指南

Spark GraphX例子

Spark GraphX例子

假定我们想从一些文本文件中构建一个图,限制这个图包含重要的关系和用户,并且在子图上运行page-rank,最后返回与top用户相关的属性。可以通过如下方式实现。

// Connect to the Spark cluster
val sc = new SparkContext("spark://master.amplab.org", "research")

// Load my user data and parse into tuples of user id and attribute list
val users = (sc.textFile("graphx/data/users.txt")
  .map(line => line.split(",")).map( parts => (parts.head.toLong, parts.tail) ))

// Parse the edge data which is already in userId -> userId format
val followerGraph = GraphLoader.edgeListFile(sc, "graphx/data/followers.txt")

// Attach the user attributes
val graph = followerGraph.outerJoinVertices(users) {
  case (uid, deg, Some(attrList)) => attrList
  // Some users may not have attributes so we set them as empty
  case (uid, deg, None) => Array.empty[String]
}

// Restrict the graph to users with usernames and names
val subgraph = graph.subgraph(vpred = (vid, attr) => attr.size == 2)

// Compute the PageRank
val pagerankGraph = subgraph.pageRank(0.001)

// Get the attributes of the top pagerank users
val userInfoWithPageRank = subgraph.outerJoinVertices(pagerankGraph.vertices) {
  case (uid, attrList, Some(pr)) => (pr, attrList.toList)
  case (uid, attrList, None) => (0.0, attrList.toList)
}

println(userInfoWithPageRank.vertices.top(5)(Ordering.by(_._2._1)).mkString("\n"))
目录
Spark 编程介绍
Spark 快速入门

Spark 编程指南

引入 Spark
初始化 Spark
Spark 共享变量

Spark 快速上手

Spark 独立应用程序
Spark Shell
Spark 运行程序

Spark RDDs

Spark 并行集合
Spark 外部数据集
Spark RDD 操作
Spark RDD持久化

Spark Streaming

Spark Streaming示例

Spark Streaming基本概念

Spark Streaming关联
初始化StreamingContext
Spark Streaming离散流
输入DStreams
DStream中的转换
DStream的输出操作
DStreams缓存或持久化
Spark Streaming Checkpointing
Spark Streaming部署应用程序
Spark Streaming监控应用程序

Spark Streaming性能调优

Spark Streaming减少批数据的执行时间
Spark Streaming设置正确的批容量
Spark Streaming内存调优
Spark Streaming容错语义

Spark SQL

Spark SQL开始
Spark SQL性能调优
Spark SQL其他接口
编写语言集成(Language-Integrated)的相关查询
Spark SQL数据类型

Spark SQL数据源

Spark SQL RDDs
Spark SQL parquet文件
Spark SQL JSON数据集
Spark SQL Hive表

GraphX编程指南

Spark GraphX开始
Spark GraphX图算法
Spark GraphX例子
Spark GraphX提交应用程序
独立运行Spark
在yarn上运行Spark
Spark GraphX属性图
Spark配置
Spark GraphX图操作符
Spark GraphX Pregel API
Spark GraphX图构造者
Spark GraphX顶点和边RDDs

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }