我们已经了解了在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进行处理,非常感谢!