创建RDD

创建RDD

Content #

在 Spark 中,创建 RDD 的典型方式有两种:

  1. 通过 SparkContext.parallelize 在内部数据之上创建 RDD;
  2. 通过 SparkContext.textFile 等 API 从外部数据创建 RDD。

第一种创建方式,只需要用 parallelize 函数来封装内部数据即可:

import org.apache.spark.rdd.RDD
val words: Array[String] = Array("Spark", "is", "cool")
val rdd: RDD[String] = sc.parallelize(words)

在 Spark 应用内定义体量超大的数据集,是不太合适的,因为数据集完全由 Driver 端创建,且创建完成后,还要在全网范围内跨节点、跨进程地分发到其他 Executors,所以往往会带来性能问题。因此,parallelize API 的典型用法,是在“小数据”之上创建 RDD。

要想在真正的“大数据”之上创建 RDD,我们还得依赖第二种创建方式。

import org.apache.spark.rdd.RDD
val rootPath: String = _
val file: String = s"${rootPath}/wikiOfSpark.txt"
// 读取文件内容
val lineRDD: RDD[String] = spark.sparkContext.textFile(file)

Viewpoints #

From #

03 | RDD常用算子(一):RDD内部的数据转换