package step1; 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.*; public class JStudent { public static void main(String[] args) { SparkConf conf = new SparkConf().setMaster("local").setAppName("JStudent"); JavaSparkContext sc = new JavaSparkContext(conf); List<Tuple2<String,Integer>> list = Arrays.asList( new Tuple2("bj",88),new Tuple2("sh",67),new Tuple2("gz",92), new Tuple2("bj",94),new Tuple2("sh",85),new Tuple2("gz",95), new Tuple2("bj",72),new Tuple2("sh",69),new Tuple2("gz",98)); /********** Begin **********/ //第一步:创建RDD //第二步:把相同key的进行聚合 //第三步:输出 /********** End **********/ sc.stop(); } }
时间: 2023-10-21 10:55:19 浏览: 62
vite vue3 import.meta.glob动态路由
这段代码是使用Java语言编写的Spark程序,主要功能是将存储学生城市和分数信息的Tuple2列表转换为一个RDD,并对相同城市的学生分数进行聚合,最终输出聚合结果。
具体实现步骤如下:
1. 创建SparkConf对象,设置Spark运行模式为本地模式,应用名称为JStudent。
2. 创建JavaSparkContext对象,传入SparkConf对象。
3. 创建Tuple2列表list,存储学生城市和分数信息。
4. 创建RDD对象,使用parallelize方法将Tuple2列表list转换为RDD。
5. 使用reduceByKey方法对相同城市的学生分数进行聚合。
6. 使用foreach方法输出聚合结果。
7. 停止JavaSparkContext对象,释放资源。
阅读全文