字数依赖于Hbase表的JavaPairRDD

时间:2015-08-21 15:22:39

标签: apache-spark hbase word-count

在它的教程中有一个单词计数的例子:

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数据库中检索)

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

2 个答案:

答案 0 :(得分:0)

你也可以做一些非常相似的事情。假设webPage有一个名为<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div id="checkboxvalues"></div> <form> <h3>Select your favorite sports:</h3> <label> <input type="checkbox" value="football" name="sport">Football</label> <label> <input type="checkbox" value="baseball" name="sport">Baseball</label> <label> <input type="checkbox" value="cricket" name="sport">Cricket</label> <label> <input type="checkbox" value="boxing" name="sport">Boxing</label> <label> <input type="checkbox" value="racing" name="sport">Racing</label> <label> <input type="checkbox" value="swimming" name="sport">Swimming</label> <br> <button type="button">Get Values</button> </form> <div id=display></div>的函数(我知道它可能没有那个确切的方法),你可以编写以下内容:

getText()

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

答案 1 :(得分:0)

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(" "));
                    }
                });

代码分为多行,仅用于解释用法。你可以用一条线来完成它。

相关问题