CSDNRGY 2017-03-06 01:34 采纳率: 88.6%
浏览 1673
已采纳

如何用spark统计某个关键词?

 public final class JavaWordCount {

    private static final Pattern SPACE = Pattern.compile("(\\s|\\p{Punct})+");

    public static void main(String[] args) throws Exception {
        //设置hadoop路径
        System.setProperty("hadoop.home.dir", "F:\\TDDownload\\spark-2.1.0-bin-hadoop2.7\\spark-2.1.0-bin-hadoop2.7");
        //设置目标文件
        args = new String[]{"D:/logs/"};
        //创建spark
        SparkSession spark = SparkSession.builder().appName("JavaWordCount").getOrCreate();
        //
        JavaRDD<String> lines = spark.read().textFile(args[0]).javaRDD();

        JavaRDD<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
            @Override
            public Iterator<String> call(String s) {
                return Arrays.asList(SPACE.split(s)).iterator();
            }
        });
        JavaPairRDD<String, Integer> ones = words.mapToPair(new PairFunction<String, String, Integer>() {
            @Override
            public Tuple2<String, Integer> call(String s) {
                return new Tuple2<>(s, 1);
            }
        });

        JavaPairRDD<String, Integer> counts = ones.reduceByKey(new Function2<Integer, Integer, Integer>() {
            @Override
            public Integer call(Integer i1, Integer i2) {
                return i1 + i2;
            }
        });

        List<Tuple2<String, Integer>> output = counts.collect();

        for (Tuple2<?, ?> tuple : output) {
            // if(tuple._1().equals("hello")) 
            System.out.println(tuple._1() + ": " + tuple._2());
        }
        spark.stop();
    }
}

spark可以专门去统计某个词吗,而不是把所有的词都统计了

我想知道日志文件中存在多少个2017,我不想知道其他的信息,这个在spark中可以实现吗?

展开全部

  • 写回答

2条回答 默认 最新

  • CSDNRGY 2017-03-12 19:35
    关注

    貌似不能只搜索目标词,spark会把所有的词都统计

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部