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;

Spark学习之第一个程序 WordCount的更多相关文章

  1. Spark学习之第一个程序打包、提交任务到集群

    1.免秘钥登录配置: ssh-keygen cd .ssh touch authorized_keys cat id_rsa.pub > authorized_keys chmod 600 au ...

  2. QT学习之第一个程序

    QT学习之第一个程序 目录 手动创建主窗口 居中显示 添加窗口图标 显示提示文本 Message Box的应用 手动连接信号与槽 手动创建主窗口 窗口类型 QMainWindow: 可以包含菜单栏.工 ...

  3. hadoop第一个程序WordCount

    hadoop第一个程序WordCount package test; import org.apache.hadoop.mapreduce.Job; import java.io.IOExceptio ...

  4. java学习 之 第一个程序及认识

    以前也看过一系列的java方面的程序,但是还没有正式敲过,今天正式学习并且正式敲出代码.在这里记录下来今日所得 写作工具:Notepad++ 在写作工具方面好多人建议用 记事本,但是我还是认为用 No ...

  5. Hadoop学习6--里程碑式的开始之执行第一个程序wordcount

    一.先在HDFS文件系统创建对应的目录,具体如下: 1.待处理文件存放目录 /data/wordcount(之所以创建wordcount,是为了对文件分类,对应本次任务名) 命令:hadoop fs ...

  6. JStorm第一个程序WordCount详解

    一.Strom基本知识(回顾) 1,首先明确Storm各个组件的作用,包括Nimbus,Supervisor,Spout,Bolt,Task,Worker,Tuple nimbus是整个storm任务 ...

  7. spark-scala开发的第一个程序WordCount

    package ***** import org.apache.spark.{SparkConf, SparkContext} object WordCount { def main(args: Ar ...

  8. Nginx学习之一-第一个程序Hello World

    本例子实现了一个简单的hello world程序.运行效果: 虚拟机Ubuntu中: win7中chrome浏览器: 一.config文件编写 Nginx提供了一种简单的方式将第三方的模块编译到Ngi ...

  9. libevent学习笔记 —— 第一个程序:计时器

    用libevent写个定时器其实步骤不多: 1.初始化libevent 2.设置事件 3.添加事件 4.进入循环 由于定时事件触发之后,默认自动删除,所以如果要一直计时,则要在回调函数中重新添加定时事 ...

随机推荐

  1. =WM_VSCROLL(消息反射) 和 WM_VSCROLL(消息响应)的区别(控件拥有者自己不处这个理消息,而是反射给控件对象本身来处理这个消息)

    =WM_VSCROLL(消息反射) 和 WM_VSCROLL(消息响应)的区别 所谓消息反射就是控件拥有者自己不处这个理消息,而是反射给控件对象本身来处理这个消息 1.“=WM_VSCROLL”是消息 ...

  2. How to create my own self signed certificate chain?

    --Refer to https://superuser.com/questions/126121/how-to-create-my-own-certificate-chain for detail. ...

  3. c#自定义业务锁

    我们有这样的使用场景,某个订单在修改信息的时候,其他人不能修改相关的信息,比如不能做支付,不能退单等等,那么我们可以根据单号进行加锁,多Monitor做了如下扩展 定义接口 //// 文件名称:ILo ...

  4. YxdIocp包含有支持大并发的TCP服务组件、HTTP服务组件、UDP服务组件、WebSocket服务组件

    Delphi Windows IOCP 通讯模型封装,基于DIOCP.YxdIocp包含有支持大并发的TCP服务组件.HTTP服务组件.UDP服务组件.WebSocket服务组件,和TCP.UDP等基 ...

  5. Gps坐标有效性判定

    百科:纬度 是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间.位于赤道以北的点的纬度叫北纬,记为N:位于赤道以南的点的纬度称南纬,记为S. var regex = new Re ...

  6. linux程序机制入门

    GCC环境 类debian系统运行 apt-get install build-essential 安装gcc环境. 编写c语言程序后,运行 gcc ./hello.c 会得到一个名为 a.out 的 ...

  7. 转:Mongoose使用操作

    一般我们不直接用MongoDB的函数来操作MongoDB数据库 Mongose就是一套操作MongoDB数据库的接口.   连接数据库 // mongoose 链接var mongoose = req ...

  8. 从0到1构建网易云信IM私有化

    本文来源于MOT技术管理课堂杭州站演讲实录,全文 2410 字,阅读约需 5分钟.网易云信资深研发工程师张翱从私有化面临的问题及需求说起,分享了网易云信IM私有化的解决方案和具体实践. 想要阅读更多技 ...

  9. HBase —— 集群环境搭建

    一.集群规划 这里搭建一个3节点的HBase集群,其中三台主机上均为Regin Server.同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002上部署备用的 ...

  10. Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...