spark组件-spark core(批处理)-rdd创建
1. 从集合创建
通过 SparkContext.parallelize() 或 makeRDD() 将本地集合(如 List)转换为 RDD,可手动指定分区数:
List<String> list = Arrays.asList("hello", "hi", "spark", "world", "hi");
JavaRDD<String> javaRDD = sc.parallelize(list, 2);
2. 从外部存储创建
支持 HDFS、本地文件系统等数据源,如
JavaRDD<String> stringRDD = sc.textFile("hdfs://path/file.txt")
3. 从其他 RDD 转换
通过转换算子(如 map、groupByKey)生成新 RDD,形成血缘关系链。
例子
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.创建sparkContextJavaSparkContext 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.关闭scsc.stop();}
}