在它的教程中有一个单词计数的例子:
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数据库中检索)
那么,我该如何计算字数呢?
答案 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(" "));
}
});
代码分为多行,仅用于解释用法。你可以用一条线来完成它。