本文章主要介绍了Spark编写wordcount(Java编写),具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!
package cn._51doit.day01;
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 LambdaWordCount {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("LambdaWordCount");
//创建JavaSparkContext, 是SparkContext的包装类,里面持有SparkContex的引用
JavaSparkContext jsc = new JavaSparkContext();
//使用jsc创建JavaRDD
JavaRDD<String> lines = jsc.textFile(args[0]);
//切分压平
JavaRDD<String> words = lines.flatMap(line -> Arrays.stream(line.split(" ")).iterator());
//单词和1组合
JavaPairRDD<String, Integer> wordAndOne = words.mapToPair(w -> Tuple2.apply(w, 1));
//聚合
JavaPairRDD<String, Integer> reduced = wordAndOne.reduceByKey((i, j) -> i + j);
//排序
JavaPairRDD<String, Integer> sorted = reduced.mapToPair(tp -> tp.swap())
.sortByKey(false)
.mapToPair(tp -> tp.swap());
//将数据写入到hdfs中
sorted.saveAsTextFile(args[1]);
//释放资源
jsc.stop();
}
}
打包 、执行参考以前的文章
原创文章,作者:kirin,如若转载,请注明出处:https://blog.ytso.com/228145.html