Spark编写wordcount(Java编写)详解大数据

本文章主要介绍了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

(0)
上一篇 2022年1月11日
下一篇 2022年1月11日

相关推荐

发表回复

登录后才能评论