package scala.spark.Day3;

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;

/**
* Created by Administrator on 2019/10/16.
*/
public class JavaRDDTest {
public static void main(String[] args) {
System.setProperty("hadoop.home.dir", "E:\\hadoop-2.6.0-cdh5.15.0\\hadoop-2.6.0-cdh5.15.0");

//JavaRDD 标准RDD
//JavaPairRDD PairRDD
//JavaDoubleRDD DoubleRDD
//java没有scala隐式转化,生成RDD时候,必须指明是哪种RDD

//实例化驱动器
SparkConf sparkConf = new SparkConf();
sparkConf.setMaster("local");
sparkConf.setAppName("Java RDD");

JavaSparkContext javaSparkContext = new JavaSparkContext(sparkConf);

//javaSparkContext.parallelize() 标准RDD
//javaSparkContext.parallelizePairs() PairRDD
//javaSparkContext.parallelizeDoubles() 数值类型RDD

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);

JavaRDD<Integer> sourceRDD = javaSparkContext.parallelize(list);

//map 算子
// 匿名子类
/*
public interface Function<T1, R> extends Serializable {
R call(T1 v1) throws Exception;
}

T1 RDD中成员的类型
v1 返回的类型
*/

JavaRDD<Integer> mapRDD = sourceRDD.map(
new Function<Integer, Integer>() {

public Integer call(Integer v1) throws Exception {
return v1 * v1;
}
}
);

/*
public interface VoidFunction<T> extends Serializable {
void call(T t) throws Exception;
}
*/
mapRDD.foreach(
new VoidFunction<Integer>() {
public void call(Integer integer) throws Exception {
System.out.println(integer);
}
}
);


javaSparkContext.close();


}
}

  

01-19 06:22