Spark Word Count Demo简介
日期 |
版本 |
修订 |
审批 |
修订说明 |
2016.12.28 |
1.0 |
章鑫 |
|
初始版本 |
|
|
|
|
|
简介
有关于Spark的概念背景、技术术语以及运行框架请参考《Spark简介》文档,这篇文档直接按照代码demo进行分析介绍。
在阅读本文前,建议已经对scala语言特别是spark编程以及hadoop生态系统和MapReduce机制有过一定的了解。
代码分析
源代码参照Spark官网的word count中的示例代码实现了text文件的单词计数功能,单词之间按照空格来区分,是理解Spark使用和原理最简单最直接的示例。
Source Code:
package org.apache.spark.app
import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.SparkContext._
object WordCount{ def main(args: Array[String]):Unit = { val conf = new SparkConf().setMaster("local").setAppName("app") val sc = new SparkContext(conf) val textFile = sc.textFile("/user/text") val counts = textFile.flatMap(line => line.split(" ")) .map(word => (word, 1)) .reduceByKey(_+_) counts.saveAsTextFile("/user/text_result") sc.stop() } } |
示例代码是用scala语言实现的,scala是一门多范式的语言,一种类似java的编程语言,集成了面向对象编程和函数式编程的特性。
逐行解读
第一行
package org.apache.spark.app
与java一样,定义class所属的package
第二行
import org.apache.spark.SparkConf
引入SparkConf类,该类与SparkContext的配置相关