WordCount程序

求下列文件中使用空格分割之后,单词出现的个数

  • input.txt
java scala python hello world
java pyfysf upuptop wintp top
sfok sf sf
sf java android sf pyfysf upuptop
pyfysf upuptop java android spark
hello world world hello top scala spark
spark spark sql

创建maven项目

  • pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>SparkStudy</artifactId>
<groupId>top.wintp.sparkstudy</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion> <artifactId>SparkCore</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
<build>
<finalName>WordCount</finalName>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<archive>
<manifest>
<mainClass>WordCount(修改)</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build> </project>
  • WordCount.scala
package top.wintp.sparkstudy.sparkcore

import org.apache.spark.{SparkConf, SparkContext}

/**
* description:
* <p>
* author: upuptop
* <p>
* qq: 337081267
* <p>
* CSDN: http://blog.csdn.net/pyfysf
* <p>
* cnblogs: http://www.cnblogs.com/upuptop
* <p>
* blog: http://wintp.top
* <p>
* email: pyfysf@163.com
* <p>
* time: 2019/07/2019/7/1
* <p>
*/
object WordCount {
def main(args: Array[String]): Unit = {
// 创建SparkConf
// setMaster local/local[n]/local[*] 都是本地运行 可以设置远程服务器的Master的地址URL
val conf = new SparkConf().setMaster("local[*]").setAppName("WordCount")
// 创建SparkContext
val sc = new SparkContext(conf)
// 根据外部文件创建RDD
val line = sc.textFile("E:/input/input.txt")
// flatmap压平操作
val words = line.flatMap(_.split(" "))
// map 组装键值对
val k2v = words.map((_, 1))
// 计算结果
val result = k2v.reduceByKey(_ + _)
// 保存结果数据到文件中去
result.saveAsTextFile("E:/output/" + System.currentTimeMillis()) // 关闭Context
sc.stop()
}
}
  • 输出结果

按照如上配置,不会出现以下问题,如不幸出现下面描述问题,请将scal-SDK放到所有依赖的最后


Exception in thread "main"
java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)
Lscala/collection/mutable/ArrayOps;

最新文章

  1. iOS微信第三方登录实现
  2. 很不错的Intent用法 适用于正在开发的伙伴。自己看到了,也分享给大家吧。
  3. android中webview调用拨号盘
  4. Java排序算法——拓扑排序
  5. PARALLEL PROCESSING
  6. 总结一下响应式设计的核心CSS技术Media(媒体查询器)的用法。(转)
  7. android解析图片资源缩小放大问题
  8. AS技巧合集「调试技巧篇」
  9. [Android]ViewPager如何只初始化一个页面
  10. [HDU5015]233 Matrix
  11. codeforces A. Xenia and Divisors 解题报告
  12. JavaScript 中的Object的使用详解笔记(一)
  13. (转)汉字转拼音HanziToPinyin
  14. linux性能优化
  15. ultraedit替换所有空白行 --正则表达式使用
  16. JQuery EasyUI学习框架
  17. Android系统--输入系统(十四)Dispatcher线程情景分析_dispatch前处理
  18. Python面向对象篇之元类,附Django Model核心原理
  19. Spring boot 整合mybatis
  20. 近期wxss总结

热门文章

  1. virtualbox 安装 extension pack 方法以及出现 &quot;The installer failed with exit code 1: VBoxExtPackHelperApp.exe: error: Failed to rename the temporary directory to the final one&quot;的解决办法
  2. jQuery仪表盘指示器动画插件 6种仪表样式
  3. 深入浅出RPC——深入篇(转载)
  4. Codility----OddOccurrencesInArray
  5. Oracle_虚拟机安装教程
  6. Java基础(四) StringBuffer、StringBuilder原理浅析
  7. Python装饰器和回调函数
  8. 升级vue全家桶过程记录
  9. vim 列编辑模式
  10. 求你了,再问你Java内存模型的时候别再给我讲堆栈方法区了…