spark是基于scala写的,虽然spark有java API,或者python API,但是scala算是正统吧。

而且scala的语法书写起来十分的爽,不想java那样笨重,python不太了解,不给予评价。

接下来看下spark版的wordcount,相对与hadoop的mapreduce要简单许多。

/**
* Spark简单入门 worldCount
*/
object SparkWC {
def main(args: Array[String]): Unit = {
// 创建spark的配置对象
// setAppName()设置程序名字
// setMaster() 设置为本地运行
// local用一个线程模拟集群
// local[2]用两个线程模拟集群
// local[*]用所有的空闲线程模拟集群,,spark://spark101:7077
val sparkConf = new SparkConf().setAppName("SparkWC").setMaster("local")
// 根据conf创建SparkContext上下文,也就是程序执行入口
val sc = new SparkContext(sparkConf)
// 读文件
// val files: RDD[String] = sc.textFile("D:\\Demo\\hadoop\\input\\word.txt")
val files: RDD[String] = sc.textFile("D:\\Demo\\hadoop\\input\\word.txt")
// 进行处理数据,进行单词统计,首先我们需要调用 flatMap算子,进行切分压平
val lines: RDD[String] = files.flatMap(_.split(" "))
// 调用map算子,进行单词的统计
val worlds: RDD[(String, Int)] = lines.map((_,1))
// 调用reduceByKey,按key对value聚合
val re: RDD[(String, Int)] = worlds.reduceByKey(_ + _)
// 将数据进行降序排序
val sortWC: RDD[(String, Int)] = re.sortBy(_._2,false)
// 打印数据
println(sortWC.collect().toBuffer)
// 数据存储到hdfs上
sortWC.saveAsTextFile("D:\\Demo\\hadoop\\ouput\\out26") }
}

从代码中,可以看到spark的scala API的强大,希望对大家有用

spark_wordcount的更多相关文章

  1. [转] 用SBT编译Spark的WordCount程序

    问题导读: 1.什么是sbt? 2.sbt项目环境如何建立? 3.如何使用sbt编译打包scala? [sbt介绍 sbt是一个代码编译工具,是scala界的mvn,可以编译scala,java等,需 ...

  2. spark基础知识(1)

    一.大数据架构 并发计算: 并行计算: 很少会说并发计算,一般都是说并行计算,但是并行计算用的是并发技术.并发更偏向于底层.并发通常指的是单机上的并发运行,通过多线程来实现.而并行计算的范围更广,他是 ...

  3. 用SBT编译Spark的WordCount程序

    问题导读: 1.什么是sbt? 2.sbt项目环境如何建立? 3.如何使用sbt编译打包scala? sbt介绍 sbt是一个代码编译工具,是scala界的mvn,可以编译scala,java等,需要 ...

  4. intellij-idea打包Scala代码在spark中运行

    .创建好Maven项目之后(记得添加Scala框架到该项目),修改pom.xml文件,添加如下内容: <properties> <spark.version></spar ...

随机推荐

  1. 【python接口自动化测试教程】00---00章节就代表开篇吧

    今天突然想写个接口测试教程,由于本人是初级的比小白稍微好那么一丢丢,所以不知道能不能坚持下来 写的不对的地方还请大咖指教 先去忙自己的工作了,忙完了回来开始写第一章吧 或者先写个大纲,要不然写的章节会 ...

  2. json、txt、xlsx

    json:   json异于pickle,无乱码,各语言都支持,但Python各对象只直接接收int,str,(),[],{}.读入txt时只接受str,int变为str(int),()[]{}被js ...

  3. day13_雷神_前端01

    #前端 html 服务器端返回的就是一个字符串,浏览器根据html规则去渲染这个字符串. html 是超文本标记语言,相当于定义统一的一套规则,大家都遵守它,这样就可以让浏览器根据标记语言的规则去解释 ...

  4. 【算法】二叉查找树(BST)实现字典API

    参考资料 <算法(java)>                           — — Robert Sedgewick, Kevin Wayne <数据结构>       ...

  5. 2019-4-22 linux学习

    linux 一.linux的目录结构 /          挂载目录:为所有目录的根目录 home  家目录:    用户的根目录 存放普通用户的文件 例如:创建一个jack用户,就会产生一个Jack ...

  6. Ubuntu18.04安装网易云音乐

    一. 安装 去网易云官网下载对应于ubuntu系统的安装包 安装依赖 dpkg -s libcanberra-gtk-module #检查依赖是否安装 sudo apt install libcanb ...

  7. 如果你在it院校学习累了,你能干什么?

    文章来源i春秋,未经允许不得转载    工具链接https://bbs.ichunqiu.com/portal.php 如果你在国内的it院校累了,有些厌倦了,你该怎么办?    分享一些joke以前 ...

  8. MySQL体系结构和存储引擎概述

     MySQL体系结构和存储引擎概述 一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是 ...

  9. preg_match(): Compilation failed: character value in \x{} or \o{} is too large at offset 8

    如果用正则筛选中文的时候,需要在规则后面添加字符u,表示使用utf8编码去解析 $reg = '/[\x{4e00}-\x{9fa5}]/u'; 例如: $reg = '/[\x{4e00}-\x{9 ...

  10. Calling Functions With Pointer Parameters

     参数类型是Constant Pointer 也就是 UnsafePointer<Type> 可以传入的类型: UnsafePointer<Type>/UnsafeMutab ...