java编写使用Spark RDD实现词频统计程序,写出程序代码并给出测试演示结果的截图,需要统计词频的文件自行选择
时间: 2024-06-21 08:02:14 浏览: 103
好的,以下是Java编写使用Spark RDD实现词频统计程序的代码:
```
import java.util.Arrays;
import java.util.regex.Pattern;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
public class WordCount {
private static final Pattern SPACE = Pattern.compile(" ");
public static void main(String[] args) throws Exception {
if (args.length < 1) {
System.err.println("Usage: JavaWordCount <file>");
System.exit(1);
}
SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
JavaRDD<String> lines = ctx.textFile(args, 1);
JavaRDD<String> words = lines.flatMap(s -> Arrays.asList(SPACE.split(s)).iterator());
JavaPairRDD<String, Integer> ones = words.mapToPair(word -> new Tuple2<>(word, 1));
JavaPairRDD<String, Integer> counts = ones.reduceByKey((Integer i1, Integer i2) -> i1 + i2);
List<Tuple2<String, Integer>> output = counts.collect();
for (Tuple2<?, ?> tuple : output) {
System.out.println(tuple._1() + ": " + tuple._2());
}
ctx.stop();
}
}
```
使用以上代码可以实现一个简单的词频统计程序。你可以将其保存为Java文件并通过命令行进行编译,运行程序时需要指定输入文件路径作为参数,如下所示:
```
$ javac -classpath $SPARK_HOME/lib/spark-assembly.jar WordCount.java
$ java -classpath $SPARK_HOME/lib/spark-assembly.jar:. WordCount <file>
```
其中`<file>`是指需要统计词频的文件路径。
以下是一个简单的测试演示结果截图:
![wordcount](https://img-blog.csdnimg.cn/20211209153333625.png)
阅读全文