java spark 单词统计_Spark入门(三)--Spark经典的单词统计

spark经典之单词统计

准备数据

既然要统计单词我们就需要一个包含一定数量的文本,我们这里选择了英文原著《GoneWithTheWind》(《飘》)的文本来做一个数据统计,看看文章中各个单词出现频次如何。为了便于大家下载文本。可以到GitHub上下载文本以及对应的代码。我将文本放在项目的目录下。

java spark 单词统计_Spark入门(三)--Spark经典的单词统计_第1张图片

首先我们要读取该文件,就要用到SparkContext中的textFile的方法,我们尝试先读取第一行。

scala实现

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

object WordCount {

def main(args: Array[String]): Unit = {

val conf = new SparkConf().setMaster("local").setAppName("WordCount")

val sc = new SparkContext(conf)

println(sc.textFile("./GoneWithTheWind").first())

}

}

java实现

import org.apache.spark.SparkConf;

import org.apache.spark.api.java.JavaSparkContext;

public class WordCountJava {

public static void main(String[] args){

SparkConf conf = new SparkConf().setMaster("local").setAppName("WordCountJava");

JavaSparkContext sc = new JavaSparkContext(conf);

System.out.println(sc.textFile("./GoneWithTheWind").first());

}

}

python实现

from pyspark import SparkConf,SparkContext

conf = SparkConf().setMaster("local").setAppName("HelloWorld")

sc = SparkContext(conf=conf)

print(sc.textFile("./GoneWithTheWind").first())

得到输出

java spark 单词统计_Spark入门(三)--Spark经典的单词统计_第2张图片

Chapter 1

以scala为例,其余两种语言也差不多。第一步我们创建了一个SparkConf

val conf = new SparkConf().setMaster("local").setAppName("WordCount")

这里我们设置Master为local,该程序名称为WordCount,当然程序名称可以任意取,和类名不同也无妨。但是这个Master则不能乱写,当我们在集群上运行,用spark-submit的时候,则要注意。我们现在只讨论本地的写法,因此,这里只写local。

接着一句我们创建了一个SparkContext,这是spark的核心,我们将conf配置传入初始化

val sc = new SparkContext(conf)

最后我们将文本路径告诉SparkContext,然后输出第一行内容

println(sc.textFile("./GoneWithTheWind").first())

开始统计

接着我们就可以开始统计文本的单词数了,因为单词是以空格划分,所以我们可以把空格作为单词的标记。

scala实现

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

object WordCount {

你可能感兴趣的:(java,spark,单词统计)