Spark的创建方式
spark根据使用的是java或scala的语言,有几种创建方式
java中RDD的创建方式
java中可以使用以下方式创建rdd
1.使用textFile读取一个文件创建;
2. 使用parallelize方法创建,第一次参数是集合,第二个参数是partition分区的数量;
3. 使用parallelizePairs创建key,value格式的rdd;
示例代码如下:
SparkConf conf = new SparkConf();
conf.setMaster("local");
conf.setAppName("RDDCreate");
JavaSparkContext context = new JavaSparkContext(conf);
//读取文件创建
JavaRDD<String> lines = context.textFile("./words");
//parallelize创建rdd
List<Integer> list = Arrays.asList(1, 2, 3, 4);
JavaRDD<Integer> javaRDD = context.parallelize(list, 2);
System.out.println(javaRDD.count());
//parallelizePairs 创建k,v格式的rdd
List<Tuple2<String, Integer>> tuple2s = Arrays.asList(
new Tuple2<String, Integer>("zhangsan", 1),
new Tuple2<String, Integer>("lisi", 2),
new Tuple2<String, Integer>("wangwu", 3)
);
JavaPairRDD<String, Integer> pairRDD = context.parallelizePairs(tuple2s);
pairRDD.foreach(new VoidFunction<Tuple2<String, Integer>>() {
@Override
public void call(Tuple2<String, Integer> tuple2) throws Exception {
System.out.println(tuple2);
}
});
scala中RDD的创建方式
scala中可以使用以下方式创建rdd
1.使用textFile读取一个文件创建;
2. 使用parallelize方法创建,第一次参数是集合,第二个参数是partition分区的数量,可以创建普通rdd,也可以创建key,value格式的rdd;
3. 使用makeRDD创建rdd;
示例代码:
val conf = new SparkConf().setAppName("RDDCreate").setMaster("local");
val context = new SparkContext(conf)
//使用textFile读取文件创建
val lines: RDD[String] = context.textFile("./words")
//使用parallelize创建rdd
val rdd: RDD[Int] = context.parallelize(Array(1,2,3,4,5))
rdd.foreach(println)
//使用makeRDD创建rdd
val pairRdd: RDD[(String, Int)] = context.makeRDD(Array(("zhangsan",1),("lisi",2),("wangwu",3)),2)
pairRdd.foreach(println)