Spark - 经典案例
初识 Spark 大数据处理,目前还只是小白阶段,初步搭建起运行环境,慢慢学习之。
本文熟悉下 Spark 数据处理的几个经典案例。
首先将 Scala SDK 的源码导入 IDEA,方便查看和调试代码,具体参考:intellij idea查看scala sdk的源代码
WordCount
WordCount 号称大数据界的 HelloWorld,初识大数据代码,从 WordCount 开始,其基本流程图如下:
相关代码如下:
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext object WordCount {
def main(args: Array[String]) {
if (args.length < 1) {
System.err.println("Usage: <file>")
System.exit(1)
} // 创建 SparkConf
val conf = new SparkConf()
conf.setAppName("WordCount")
.setMaster("local") // 创建 SparkContext
val sc = new SparkContext(conf) // 数据处理
val line = sc.textFile(args(0))
line.flatMap(_.split("\\s+"))
.map((_, 1))
.reduceByKey(_+_)
.collect.foreach(println) // 关闭 SparkContext
sc.stop
}
}
注意几个问题:
- 正则表达式 "\\s+" 匹配任意空白字符
- SparkConf Name 和 Master Level 必须设置,本地调试应 local 或 local[i],i 表示线程数(worker threads)
- args(0) 表示待测试的文件,eg,"sqh.txt"
- 无论本地测试还是集群测试必须有 SparkContext 的实例
其中,textFile() 方法用于从文件创建 RDD,RDD 的每个元素对应文件中的每一行。源码定义如下:
def textFile(path : scala.Predef.String, minPartitions : scala.Int = { /* compiled code */ })
: org.apache.spark.rdd.RDD[scala.Predef.String] = { /* compiled code */ }
词频统计示意图
其中,假定 分片M=5,分区R=3,有6台机器,一台master,5台slaver。
参考:
Spark - 经典案例的更多相关文章
- Spark之权威指南经典案例
hadoop权威指南上有一个求历史最高温度的经典案例,源数据如下: -- sample.txt0067011990999991950051507004+68750+023550FM-12+038299 ...
- 汇总java生态圈常用技术框架、开源中间件,系统架构及经典案例等
转自:http://www.51testing.com/html/83/n-3718883.html 有人认为编程是一门技术活,要有一定的天赋,非天资聪慧者不能及也.非也,这是近几年,对于技术这碗饭有 ...
- javascript的理解及经典案例
js的简介: JavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言. 你可以利用JavaScript轻易的做出亲切的欢迎讯息.漂亮的数字钟.有广告效 ...
- jQuery基础的工厂函数以及定时器的经典案例
1. jQuery的基本信息: 1.1 定义: jQuery是JavaScript的程序库之一,它是JavaScript对象和实用函数的封装, 1.2 作用: 许多使用JavaScript能实现的交 ...
- Linux运维之道(大量经典案例、问题分析,运维案头书,红帽推荐)
Linux运维之道(大量经典案例.问题分析,运维案头书,红帽推荐) 丁明一 编 ISBN 978-7-121-21877-4 2014年1月出版 定价:69.00元 448页 16开 编辑推荐 1 ...
- 经典案例:那些让人赞不绝口的创新 HTML5 网站
在过去的10年里,网页设计师使用 Flash.JavaScript 或其他复杂的软件和技术来创建网站.但现在你可以前所未有的快速.轻松地设计或创造互动的.有趣好看的网站.如何创建?答案是 HTML5 ...
- Altera OpenCL用于计算机领域的13个经典案例(转)
英文出自:Streamcomputing 转自:http://www.csdn.net/article/2013-10-29/2817319-the-application-areas-opencl- ...
- php中foreach()函数与Array数组经典案例讲解
//php中foreach()函数与Array数组经典案例讲解 function getVal($v) { return $v; //可以加任意检查代码,列入要求$v必须是数字,或过滤非法字符串等.} ...
- 阿里云资深DBA专家罗龙九:云数据库十大经典案例分析【转载】
阿里云资深DBA专家罗龙九:云数据库十大经典案例分析 2016-07-21 06:33 本文已获阿里云授权发布,转载具体要求见文末 摘要:本文根据阿里云资深DBA专家罗龙九在首届阿里巴巴在线峰会的&l ...
随机推荐
- c++ 观察者模式(observer)
观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.它还有两个别名,依赖 (Dependents),发布-订阅(Publish-Subs ...
- SQL 数据库 学习 004 预备知识
数据库 预备知识 我的电脑系统: Windows 10 64位 使用的SQL Server软件: SQL Server 2014 Express 如果我们要学习这个数据库,我们需要学习什么知识. 预备 ...
- avalonjs 笔记
1>复选卡框和单选框 复选卡框 监控已选框的数组,即通过属性监控来判断是否全选 <div ms-controller="test"> <ul> < ...
- 支付宝soa框架发展思路(转载)
大家好,这里是首届QCon Beijing的现场,现在坐在我的旁边是的支付宝的首席架构师程立.先给大家介绍一下,支付宝架构发展到今天,经历哪些时期,都有哪些里程碑? 我回忆一下,支付宝系统架构发展大概 ...
- 面向对象的JavaScript-008-Function介绍
1. // 函数 /* Declare the function 'myFunc' */ function myFunc(theObject) { theObject.brand = "To ...
- back propogation 的线代描述
参考资料: 算法部分: standfor, ufldl : http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial 一文弄懂BP:https: ...
- [GO]面向对象和面对过程的方式
package main import ( "fmt" ) //这里为面向过程的方式 func Add(a, b int) int { return a + b } //面向对象, ...
- 大前端涉猎之前后端交互总结2:使用PHP进行表单数据上传与更新
1:使用PHP进行表单上传 1.1 form表单的数据收集 HTML页面: 代码解释:核心模块是form的属性: --提交方式 : method="post" --指定 name ...
- HDU 4514 湫湫系列故事――设计风景线 (树形DP)
题意:略. 析:首先先判环,如果有环直接输出,用并查集就好,如果没有环,那么就是一棵树,然后最长的就是树的直径,这个题注意少开内存,容易超内存, 还有用C++交用的少一些,我用G++交的卡在32764 ...
- strerror线程安全分析
导读 strerror是否线程安全了? 1 errno是否线程安全? 1 附1:strerror源码 2 附2:__strerror_r源码 2 strerror是否线程安全了? 答案是NO,但它有个 ...