一、提出任务

单词计数是学习分布式计算的入门程序,有很多种实现方式,例如MapReduce;使用Spark提供的RDD算子可以更加轻松地实现单词计数。
    在IntelliJ IDEA中新建Maven管理的Spark项目,并在该项目中使用Scala语言编写Spark的WordCount程序,最后将项目打包提交到Spark集群(Standalone模式)中运行。
    预备工作:启动集群的HDFS与Spark

二、完成任务

(一)新建Maven项目

(二)添加相关依赖和构建插件

配置maven

点击刷新

(三)创建日志属性文件

log4j.rootLogger=ERROR, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spark.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

(四)创建词频统计单例对象

package net.zhj.rddimport org.apache.spark.{SparkConf, SparkContext}
object WordCount {def main(args: Array[String]): Unit = {// 设置系统属性HADOOP_USER_NAME为root用户,否则对HDFS没有写权限System.setProperty("HADOOP_USER_NAME", "root")// 创建Spark配置对象val conf = new SparkConf().setAppName("SparkRDDWordCount") // 设置应用名称.setMaster("local[*]") // 设置主节点位置(目前本地调试)// 基于Spark配置对象创建Spark容器val sc = new SparkContext(conf);// 判断命令行参数个数var inputPath = "";var outputPath = "";if (args.length == 0) {inputPath = "hdfs://master:9000/input/words.txt";outputPath = "hdfs://master:9000/wc_result";} else if (args.length == 1) {inputPath = args(0); // 用户指定outputPath = "hdfs://master:9000/wc_result";} else if (args.length == 2) {inputPath = args(0); // 用户指定outputPath = args(1); // 用户指定} else {println("温馨提示:参数不能多于两个~")inputPath = args(0); // 用户指定outputPath = args(1); // 用户指定}// 进行词频统计val wc = sc.textFile(inputPath) // 读取文件,得到RDD.flatMap(_.split(" ")) // 扁平化映射,得到单词数组.map((_, 1)) // 针对每个单词得到二元组(word, 1).reduceByKey(_ + _) // 按键进行聚合(key相同,value就累加).sortBy(_._2, false) // 按照单词个数降序排列// 输出词频统计统计wc.collect.foreach(println)// 词频统计结果保存到指定位置wc.saveAsTextFile(outputPath);// 停止Spark容器,结束任务sc.stop()}
}

(五)本地运行程序,查看结果

然后查看HDFS上的结果文件内容

有两个结果文件,我们可以分别查看其内容

创建文本文件 - word.txt

给程序设置命令行参数(注意两个参数之间必须有空格)

点击红框

输入 hdfs://master:9000/input/words.txt hdfs://master:9000/word_result

运行程序,查看控制台输出结果

sparkRDD词频统计相关推荐

  1. SparkRDD 词频统计

    目录 一.提出任务 二.完成任务 (一)新建Maven项目 (二)添加相关依赖和构建插件 (三)创建日志属性文件 (四)创建词频统计单例对象 (四)创建词频统计单例对象 (五)本地运行程序,查看结果 ...

  2. 用R语言做词频统计_R语言 | 词频统计

    Python网络爬虫与文本数据分析 本章内容 导入停用词 读数据,分词 剔除停用词 导入停用词表 library(dplyr) ## [1] "?" "." & ...

  3. 统计csv词频_中文词频统计

    中文词频统计 1. 下载一长篇中文小说. <倚天屠龙记> 2. 从文件读取待分析文本. 3. 安装并使用jieba进行中文分词. pip install jieba import jieb ...

  4. 201671010417 金振兴 词频统计软件项目报告

    1.需求分析 按照<构建之法>第2章中2.3所述PSP流程,使用JAVA编程语言,独立完成一个英文文本词频统计的软件开发. .程序可读入任意英文文本文件,该文件中英文词数大于等于1个. . ...

  5. 字符串操作、文件操作,英文词频统计预处理

    1.字符串操作: 解析身份证号:生日.性别.出生地等 凯撒密码编码与解码 网址观察与批量生成 (1)解析身份证: 编译结果: (2)凯撒密码编码与解码 编译结果: 2.英文词频统计预处理 下载一首英文 ...

  6. hive进行词频统计

    统计文件信息: $ /opt/cdh-5.3.6/hadoop-2.5.0/bin/hdfs dfs -text /user/hadoop/wordcount/input/wc.input hadoo ...

  7. Python_note6 组合数据类型+jieba库+文本词频统计

    集合类型和操作 集合元素不可修改,由不可变数据类型组成,元素不可重复 a = {"python",123,("python",123)}使用{}建立集合 b = ...

  8. 软工作业3: 词频统计

    词频统计 一.编译环境 (1)IDE:PyCharm 2018 (2)python版本:python3.6.3(Anaconda3-5.1.0  ) 二.程序分析 (1)读文件到缓冲区(process ...

  9. python 词频统计,分词笔记

    Python的中文分词库有很多,常见的有: jieba(结巴分词) THULAC(清华大学自然语言处理与社会人文计算实验室) pkuseg(北京大学语言计算与机器学习研究组) SnowNLP pynl ...

最新文章

  1. 为何BERT在 NLP 中的表现如此抢眼?
  2. shell 使用数组作为函数参数的方法
  3. java web开发环境搭建
  4. 硬盘安装Windows7--笔记
  5. corosync+openais+pacemaker构建高可用性集群
  6. python aop编程_学习笔记: AOP面向切面编程和C#多种实现
  7. java实现插入排序+代码推导
  8. 首届!「中国云计算基础架构开发者大会」征稿启动
  9. 【疾病分类】基于matlab GUI模糊逻辑分类叶病严重程度分级系统【含Matlab源码 194期】
  10. 采集摄像头RGB565数据并转为bmp图像
  11. Dreamweaver简单网页——HTML+CSS小米官网首页的设计与实现
  12. 机器学习算法工程师--实习面经
  13. File 与 MultipartFile概述
  14. Navicat 连接超时问题
  15. JVM系列(十七):字节码指令集
  16. matlab silhouette函数,相当于Matlab的聚类质量函数?
  17. 《L-谷氨酰胺和L-精氨酸发酵生产》全书阅读笔记
  18. 沐神动手深度学习 06线性回归从0开始实现
  19. iOS Main.string国际化不起作用
  20. 编码器NDI低延时无线WIFI室外直播方案(NDI传输+VMIX软导播)

热门文章

  1. js判断H5页面是否是在QQ\UC浏览器中打开
  2. 让你的浏览器具备Wap功能
  3. 【计算机组成原理】计算机组成原理纠错本
  4. 基于labview的tcp通信设计简要教程
  5. 与计算机科学有关的论文,有关计算机科学论文范文2篇
  6. Acrel-7000企业能源管控平台在浙江春风动力股份有限公司的应用
  7. 绝对值不等式6个基本公式
  8. c语言输入123输出112233,C语言程序的设计 第3章 程序语言基础1.pdf
  9. python魔术师算法
  10. Python 绘制3D宇宙飞船