大数据入门到精通9-真正得wordcount
本章节实现一个真正得wordcount 得spark程序。
一、从本地获得一个数据集
val speechRdd= sc.parallelize(scala.io.Source.fromFile("/home/hdfs/Data/WordCount/speech").getLines.toList)
二、把每一样变成多行
val wordMap=speechRdd.flatMap(line=>{
line.split(" ")
})
三、去掉特殊字符,并取消大小写区别
val wordCount=wordMap.map(word=>{
val w=word.replaceAll("[,.?!:;]"," ").toLowerCase.trim
(w,1)
})
四、写reduce函数
val wordReduce=wordCount.reduceByKey((sum,current)=>{sum+current})
这里也可以不写reducebykey函数,而是直接对wordcount这个rdd做countByKey
scala> wordCount.countByKey
res2: scala.collection.Map[String,Long] = Map(krishna -> 1, beneath -> 1, opinions -> 1, beautiful -> 2, sunday -> 1, devastating -> 1, drown -> 1, cells -> 2, down -> 3, savings -> 1, heaviness -> 1, application -> 1, interesting -> 1, 7 30 -> 1, "" -> 27, desktop -> 1, read -> 1, papers -> 1, failure -> 2, mother -> 3, for -> 17, biopsy -> 1, find -> 4, school -> 1, directors -> 1, coke -> 1, people -> 1, begin -> 2, any -> 2, website -> 1, ?.tay -> 1, mac -> 3, decisions -> 1, across -> 1, gradually -> 1, years -> 9, i?. -> 3, young -> 2, talented -> 1, doctor?. -> 1, this -> 11, death -> 6, curable -> 1, in -> 34, subtle -> 1, remarkable -> 1, myself -> 2, have -> 17, learned -> 1, needed -> 1, your -> 16, ?.f -> 2, off -> 1, ?.f -> 1, fonts -> 1, offered -> 1, bottles -> 1, are -> ...
scala>
是一个map类型,不再是一个rdd类型。
wordReduce.take(20).foreach(println)
大数据入门到精通9-真正得wordcount的更多相关文章
- 大数据入门到精通2--spark rdd 获得数据的三种方法
通过hdfs或者spark用户登录操作系统,执行spark-shell spark-shell 也可以带参数,这样就覆盖了默认得参数 spark-shell --master yarn --num-e ...
- 大数据入门到精通19--mysql 数据导入到hive数据中
一.正常按照数据库和表导入 \\前面介绍了通过底层文件得形式导入到hive的表中,或者直接导入到hdfs中,\\现在介绍通过hive的database和table命令来从上层操作.sqoop impo ...
- 大数据入门到精通18--sqoop 导入关系库到hdfs中和hive表中
一,选择数据库,这里使用标准mysql sakila数据库 mysql -u root -D sakila -p 二.首先尝试把表中的数据导入到hdfs文件中,这样后续就可以使用spark来dataf ...
- 大数据入门到精通16--hive 的条件语句和聚合函数
一.条件表达 case when ... then when .... then ... when ... then ...end select film_id,rpad(title,20," ...
- 大数据入门到精通13--为后续和MySQL数据库准备
We will be using the sakila database extensively inside the rest of the course and it would be great ...
- 大数据入门到精通12--spark dataframe 注册成hive 的临时表
一.获得最初的数据并形成dataframe val ny= sc.textFile("data/new_york/")val header=ny.firstval filterNY ...
- 大数据入门到精通11-spark dataframe 基础操作
// dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...
- 大数据入门到精通10--spark rdd groupbykey的使用
//groupbykey 一.准备数据val flights=sc.textFile("data/Flights/flights.csv")val sampleFlights=sc ...
- 大数据入门到精通8-spark RDD 复合key 和复合value 的map reduce操作
一.做基础数据准备 这次使用fights得数据. scala> val flights= sc.textFile("/user/hdfs/data/Flights/flights.cs ...
随机推荐
- angular 使用window事件
1. 使用host 2. 使用HostListener 推荐使用第二种方式. 不推荐下面的方法,虽然也能进行window事件的绑定,但组件销毁后,window事件任然保留,即使手动在组件的ngOn ...
- PythonStudy——高级语言 High-level programming language
高级语言 高级语言(High-level programming language)相对于机器语言(machine language,是一种指令集的体系.这种指令集,称机器码(machine code ...
- golang: 利用unsafe操作未导出变量
unsafe.Pointer其实就是类似C的void *,在golang中是用于各种指针相互转换的桥梁.uintptr是golang的内置类型,是能存储指针的整型,uintptr的底层类型是int,它 ...
- CPU使用情况之平均负载
需求场景: 新入职公司,需要监控方案,于是先把zabbix里有关OS模块的监控项全部列出来,并一个一个去研究具体的代表的意思:发现其他的都很容易理解,只要有关CPU监控的就难以理解.于是 ...
- 【python】dist-packages和site-packages的区别
一.dist-packages和site-packages的区别 sudo apt-get install 安装的package存放在/usr/lib/python2./dist-packages目录 ...
- windows下缩短time_wait的时间
最近线上遇到windows机器访问其他机器的时候失败的情况.实际就是本地的端口不够用造成的. D:\>netsh interface ipv4 show dynamicportrange pro ...
- 服务器tcp连接timewait过多优化及详细分析
[背景说明] 在7层负载均衡上,查询网络状态发现timewait太多,于是开始准备优化事宜 整体的拓扑结构,前面是lvs做dr模式的4层负载均衡,后端使用(nginx.or haproxy)做7层负载 ...
- Python安装与Pycharm使用入门
一.安装Python 1.Linux下安装 一般系统默认已安装2.6.6版本,升级成2.7版本, 但 2.6 不能删除,因为系统对它有依赖,epel源里最新的也是2.6版本,所以以源代码的方式安装2. ...
- (整理)SQL Server 2008 CDC 功能使用
最近某项目突然要增加数据的获取,但是不能改程序.也没有同步的只读库,只好使用CDC来进行尝试. CDC的启用和停止全部用SQL实现,在这里给出主要的SQL步骤: /****** Script for ...
- Django多个中间件的执行顺序
Django中的中间件是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出.中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健 ...