CSDNRGY 2017-03-06 09:34 采纳率: 87.5%
浏览 1672
已采纳

如何用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-13 03:35
    关注

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

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

报告相同问题?

悬赏问题

  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档