1. 从集合创建
通过 SparkContext.parallelize() 或 makeRDD() 将本地集合(如 List)转换为 RDD,可手动指定分区数:
java
List<String> list = Arrays.asList("hello", "hi", "spark", "world", "hi");
JavaRDD<String> javaRDD = sc.parallelize(list, 2);
2. 从外部存储创建
支持 HDFS、本地文件系统等数据源,如
java
JavaRDD<String> stringRDD = sc.textFile("hdfs://path/file.txt")
3. 从其他 RDD 转换
通过转换算子(如 map、groupByKey)生成新 RDD,形成血缘关系链。
例子
java
package com.spark.qichsiii.core.a_rdd_create;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import java.util.Arrays;
import java.util.List;
public class RddCreationFromCollection {
public static void main(String[] args) {
// 1.创建配置对象
SparkConf conf = new SparkConf().setMaster("local[*]").setAppName("RddCreation");
// 2.创建sparkContext
JavaSparkContext sc = new JavaSparkContext(conf);
// 3.编写代码
// a.集合创建
JavaRDD<String> stringRDD = sc.parallelize(Arrays.asList("hello","spark"));
// b.从外部存储创建
//JavaRDD<String> stringRDD = sc.textFile("input")
List<String> collect = stringRDD.collect();
for(String s: collect){
System.out.println(s);
}
// 4.关闭sc
sc.stop();
}
}