Spark之RDD的创建

这篇博客介绍了Spark中的核心概念——弹性分布式数据集(RDD),详细阐述了如何通过并行集合和外部数据集两种方式创建RDD。并行集合可以通过`parallelize`和`makeRDD`方法从现有集合创建,而外部数据集则支持从Hadoop兼容的存储源如HDFS、HBase、S3等读取。RDD的操作包括并行化操作和数据读取,强调了分区数在性能中的重要性,以及如何通过`textFile`等方法读取不同格式的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

弹性分布式数据集(RDD)

Spark围绕弹性分布式数据集(RDD)的概念展开,RDD是可并行操作的元素的容错集合。

创建RDD的方式有两种:

1.并行化驱动程序中的现有集合

2.引用外部存储系统(例如共享文件系统、HDFS、HBase、或Hadoop InputFormat的任何数据源)中的数据集

1.并行集合

有两种方法创建并行集合:parallelize、makeRDD

用scala语言创建

def main(args: Array[String]): Unit = {
    val sc = new SparkContext(new SparkConf().setAppName("Test3").setMaster("local[*]"))
    val data = Array(1,2,3,4,5)
    //第一种方式创建RDD
    val dataRDD: RDD[Int] = sc.parallelize(data)
    //第二种方式创建RDD
### 创建 Spark RDD 的方法 在 Spark创建弹性分布式数据集 (RDD) 是进行数据分析的基础。RDD 可以通过不同的方式创建,最常见的几种方式是从 HDFS 文件、内存集合或本地文件创建。 #### 从 HDFS 文件创建 RDD 生产环境中经常使用这种方式来进行离线批处理工作[^1]。下面是一个具体的例子: ```java import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; // 假设已有一个配置好的 SparkConf 对象 conf JavaSparkContext sc = new JavaSparkContext(&quot;local&quot;, &quot;First Spark App&quot;, conf); // 使用 textFile 方法加载 HDFS 上的文件路径作为输入来构建 RDD String hdfsPath = &quot;hdfs://namenode:8020/user/data/input.txt&quot;; JavaRDD<String> lines = sc.textFile(hdfsPath); ``` 这段代码展示了如何利用 `textFile` 函数指定 HDFS 路径从而初始化一个由字符串组成的 RDD 实例[^3]。 #### 从内存集合创建 RDD 除了外部存储外,还可以直接从应用程序内部的数据结构生成 RDD。这适用于测试场景或是小规模数据集的情况。 ```java List<Integer> data = Arrays.asList(1, 2, 3, 4, 5); JavaRDD<Integer> distData = sc.parallelize(data); ``` 这里采用 `parallelize` 方法将列表中的整数转化为分布在集群各节点上的 RDD 形式[^2]。 #### 持久化 RDD 到内存中 为了提高效率,在某些情况下希望把中间计算结果保存下来供后续多次访问而不必每次都重新计算。可以通过调用 `cache()` 或者更详细的 `persist()` 来实现这一点。 ```java distData.cache(); // 将此 RDD 缓存至内存以便快速重用 ``` 以上就是关于如何在 Spark 应用程序里创建 RDD 并对其进行简单操作的一些介绍和实例说明。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值