java 版spark 中的map算子的使用

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;
import org.apache.spark.api.java.function.VoidFunction;

import java.util.Arrays;
import java.util.List;

public class Test02 {
    public static void main(String[] args) {
        map();
    }
    /**
     * transformation操作实战
     * @param args
     */

        /**
         * map算子案例,将集合中每一个元素都乘以2
         */
        public static void map(){
            //创建SparkConf
            SparkConf conf = new SparkConf().setAppName("map").setMaster("local");
            //创建javaSparkContext
            JavaSparkContext sc = new JavaSparkContext(conf);
            //构建集合
            List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
            //并行化集合,创建初始RDD
            JavaRDD<Integer> numberRDD = sc.parallelize(numbers);

            //使用map算子,将集合中每个元素都乘以2
            //map算子,是对于任何类型的RDD,都可以调用的
            //在java中,map算子接收的参数是Function对象
            //创建的function对象,一定会让你设置第二个泛型,这个泛型类型,并返回一个新的元素
            //所有新的元素就会组成一个新的RDD

            JavaRDD<Integer> rdd = numberRDD.map(new Function<Integer, Integer>() {
                @Override
                public Integer call(Integer v1) throws Exception {
                    return v1 * 2;
                }
            });
            rdd.foreach(new VoidFunction<Integer>() {
                @Override
                public void call(Integer t) throws Exception {
                    System.out.println(t);
                }
            });

            //关闭资源
            sc.close();


        }

}

猜你喜欢

转载自blog.csdn.net/LJ2415/article/details/84987362