栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

WordCount程序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

WordCount程序

WordCount程序编写

Java

public class WordCount {
    public static void main(String[] args) {
    // 配置sparkconf,启动spark应用程序
        SparkConf sparkConf = new SparkConf().setAppName("spark").setMaster("local");
        JavaSparkContext sc = new JavaSparkContext(sparkConf);
        //使用textFile方法读取文件,逐行读取
        JavaRDD line = sc.textFile("D:/JavaCode/javascala/src/main/scala/rdd/builder/word");
       // flatMap算子,拆分单词
        JavaRDD words = line.flatMap(new FlatMapFunction() {
            public Iterator call(String s) throws Exception {
                return Arrays.asList(s.split(" ")).iterator();
            }
        });
        //map算子,对单词进行映射 word =>(Word,1)
        JavaPairRDD word = words.mapToPair(new PairFunction() {
            public Tuple2 call(String s) throws Exception {
                return new Tuple2(s, 1);
            }
        });
        //reduceByKey算子,最相同的单词进行分组聚合
        JavaPairRDD wordCount = word.reduceByKey(new Function2() {
            public Integer call(Integer v1, Integer v2) throws Exception {
                return v1 + v2;
            }
        });
        //遍历打印结果
        wordCount.foreach(new VoidFunction>() {
            public void call(Tuple2 stringIntegerTuple2) throws Exception {
                System.out.println(stringIntegerTuple2._1+":"+stringIntegerTuple2._2);
            }
        });

        sc.stop();
    }
}

Scala

object WordCount {
  def main(args: Array[String]): Unit = {
    //wordcount程序
    //1.创建spark应用程序
    val sparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount")
    val sc = new SparkContext(sparkConf)

    //2. 读取文件
    val words = sc.textFile("D:/JavaCode/javascala/src/main/scala/rdd/builder/word")
    //3. 分词
    val word = words.flatMap(_.split(" "))

    //4.map映射
    val word_map = word.map(x => (x, 1))

    //5.聚合
    val word_count = word_map.reduceByKey(_ + _)

    //6.打印结果
    word_count.sortBy((x)=>(-x._2)).collect().foreach(println)

    word_count.groupByKey().foreach(println)
    //7.关闭spark程序
    sc.stop()
  }
}

总结:使用Scala开发spark应用程序,相对Java要更简洁,更方便。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710637.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号