词频统计系统 java_04 使用spark进行词频统计【java maven】

我们已经了解了在spark命令行当中使用交互方式完成词频统计,本节将阐述在idea当中使用maven环境完成java代码,并进行词频统计。

1 系统、软件以及前提约束

已经有待统计的文件word上传到HDFS,名字为/word

idea 2018.2

2 操作

1 创建一个maven工程,修改pom.xml中的依赖

cloudera

cloudera

https://repository.cloudera.com/artifactory/cloudera-repos/

org.apache.spark

spark-core_2.11

2.2.0

org.scala-lang

scala-library

2.11.8

org.apache.hadoop

hadoop-client

2.6.0-cdh5.7.0

2 在src下创建一个SparkWordCount.java

import org.apache.spark.SparkConf;

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

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

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

import org.apache.spark.api.java.function.FlatMapFunction;

import org.apache.spark.api.java.function.Function2;

import org.apache.spark.api.java.function.PairFunction;

import scala.Tuple2;

import java.util.Arrays;

import java.util.Iterator;

import org.apache.spark.SparkConf;

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

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

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

import scala.Tuple2;

import java.util.Arrays;

public class SparkWordCount {

public static void main(String[] args) {

//在windows下执行,必须设置本地的hadoop安装路径,倘若打成jar包,上传到linux,则不需要设置

System.setProperty(“hadoop.home.dir”, “C:\hadoop2.7.2”);

SparkConf conf = new SparkConf();

//设置master

conf.setMaster(“local[*]”);

//设置应用的名称

conf.setAppName(SparkWordCount.class.getSimpleName());

//获取sparkcontext

JavaSparkContext sc = new JavaSparkContext(conf);

// 读hdfs中数据

JavaRDD lines = sc.textFile(“hdfs://192.168.100.200:9000/word”);

// split

JavaRDD words = lines.flatMap(t -> Arrays.asList(t.split(” “)).iterator());

// map

JavaPairRDD wordAndOne = words.mapToPair(word -> new Tuple2(word, 1));

// combine

JavaPairRDD result = wordAndOne.reduceByKey((a, b) -> a + b);

JavaPairRDD beforeSwap = result.mapToPair(tp -> tp.swap());

JavaPairRDD sorted = beforeSwap.sortByKey(false);

JavaPairRDD finalRes = sorted.mapToPair(tp -> tp.swap());

finalRes.saveAsTextFile(“hdfs://192.168.100.200:9000/outputjava”);

sc.stop();

}

}

}

}

3 执行,在HDFS服务的/outputjava下查看结果。

以上就是在idea中使用maven+java完成spark下的词频统计。

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92800 人正在系统学习中 相关资源:蓦然记忆助手2.0触屏加强版-管理软件工具类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月21日
下一篇 2021年1月21日

相关推荐