IDEAでJava Lambdaを使用してWordCountプログラムを作成する

1974 ワード

プロジェクトの作成の詳細はブログを参照してください:IDEAでScalaでWordCountプログラムを作成し、クラスタにアップロードして実行します.https://blog.csdn.net/weixin_43866709/article/details/88599701
コードは次のとおりです.
package cn.edu360.spark;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import scala.Tuple2;

import java.util.Arrays;

public class javaLambdaWordCount {
    public static void main(String[] args){
        SparkConf conf = new SparkConf().setAppName("javaLambdaWordCount");
        //  sparkContext
        JavaSparkContext jsc = new JavaSparkContext(conf);
        //           
        JavaRDD lines = jsc.textFile(args[0]);
        //    
        JavaRDD words = lines.flatMap(line -> Arrays.asList(line.split(" ")).iterator());
        //    1  
        JavaPairRDD wordAndOne = words.mapToPair(w -> new Tuple2<>(w, 1));
        //  
        JavaPairRDD reduced = wordAndOne.reduceByKey((m, n) -> m + n);
        //    
        JavaPairRDD swaped = reduced.mapToPair(tp -> tp.swap());
        //  
        JavaPairRDD sorted = swaped.sortByKey(false);
        //    
        JavaPairRDD result = sorted.mapToPair(tp -> tp.swap());
        //      hdfs
        result.saveAsTextFile(args[1]);
        //    
        jsc.stop();

    }
}

次にjarパケットに打ってsparkクラスタにアップロードして実行します.実行コマンドは次のとおりです.
spark-submit//sparkクラスタにタスクコマンドをコミット-masterspark://L1:7077//–master sparkクラスタ上のmasterホストとポートの指定–class com.baidu.spark.javaLambdaWordCount//プログラムのクラス名の指定(プログラム実行のエントリ)/home/hadoop/original-SparkTest 1-1.0-SNAPSHOT-javaLambda.jar//jarパッケージの場所を指定hdfs://L1:9000/aaa//HDFS上のnamenodeのホスト名とポート、およびファイルの場所の指定hdfs://L1:9000/aaajavaLambdaOut//プログラム実行結果格納場所の指定