java 版spark 中的map運算元的使用
阿新 • • 發佈:2018-12-17
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(); } }