【问题标题】:Word Count on JavaPairRDD of Hbase TableHbase表的JavaPairRDD字数统计
【发布时间】:2015-11-15 14:50:12
【问题描述】:

教程中有一个字数统计示例:

JavaRDD<String> textFile = spark.textFile("hdfs://...");
JavaRDD<String> words = textFile.flatMap(new FlatMapFunction<String, String>() {
  public Iterable<String> call(String s) { return Arrays.asList(s.split(" ")); }
});
JavaPairRDD<String, Integer> pairs = words.mapToPair(new PairFunction<String, String, Integer>() {
  public Tuple2<String, Integer> call(String s) { return new Tuple2<String, Integer>(s, 1); }
});
JavaPairRDD<String, Integer> counts = pairs.reduceByKey(new Function2<Integer, Integer, Integer>() {
  public Integer call(Integer a, Integer b) { return a + b; }
});
counts.saveAsTextFile("hdfs://...");

但是,我已经有一个 JavaPairRDD 为 words 而不是 JavaRDD:

JavaPairRDD<String, WebPage> myRDD

并希望对其进行字数统计(从 Hbase 数据库中检索)

那么,我该如何计算字数呢?

【问题讨论】:

    标签: apache-spark hbase word-count


    【解决方案1】:

    你也可以做一些非常相似的事情。假设 webPage 有一个名为 getText() 的函数(我知道它可能没有那个确切的方法),您可以编写以下代码:

    JavaPairRDD<String> words = myRDD.flatMap(
      new FlatMapFunction<Tuple2<String, WebPage> String>() {
        public Iterable<String> call(Tuple2<String, WebPage> sW) {
          return Arrays.asList(sW.getText().split(" "));
      })
    

    从这里您现有的字数统计代码将起作用。

    【讨论】:

      【解决方案2】:
      JavaRDD<String> rdd = myRDD.flatMap(new FlatMapFunction<Tuple2<String, WebPage >, String>() {
                          @Override
                          public Iterable<String> call(Tuple2<String, WebPage > tuple2) {
                              //Get web page from the tuple
                              WebPage webPage = tuple2._2();
                              //Invoke appropriate method to extract text
                              String pageText = <get page text>
                              return Arrays.asList(pageText.split(" "));
                          }
                      });
      

      代码分为多行,仅用于说明用法。您可以将所有内容放在一行中。

      【讨论】:

        猜你喜欢
        • 2012-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多