1、parallelize
调用SparkContext 的 parallelize()
,将一个存在的集合,变成一个RDD
,创建RDD
的一种方式
Scala
- 有一个或两个参数,第一个为 Seq 集合,第二个参数是分区数(不传第二个参数则为默认分区数)
- 返回一个 RDD
sc.parallelize(List("shenzhen", "is a beautiful city"))
Java
- 有一个或两个参数,第一个为 List 集合,第二个参数是分区数(不传第二个参数则为默认分区数)
- 返回一个 JavaRDD
- Java 只能接收 List 集合
JavaRDD<String> javaStringRDD = sc.parallelize(Arrays.asList("shenzhen", "is a beautiful city"));
2、makeRDD
Scala
- 作用与
parallelize
相同,用于创建RDD
,Java 没有 makeRDD
sc.makeRDD(List("shenzhen", "is a beautiful city"))
3、textFile
调用SparkContext.textFile()
方法,从外部存储中读取数据来创建 RDD
Scala
- 传入文件路径
- 文件中一行为一个元素
- textFile 支持分区,支持模式匹配
- 多个路径可以使用逗号分隔
- 可读取 hdfs 文件系统上的文件
var lines = sc.textFile("dataexample/wordcount/")
var lines = sc.textFile("dataexample/wordcount/input.txt")
var lines = sc.textFile("dataexample/wordcount/*.txt")
var lines = sc.textFile("dir1,dir2",3)
var lines = sc.textFile("hdfs://hadoop:9000/kb09workspace/*.txt",3)
Java
JavaRDD<String> lines = sc.textFile("dataexample/wordcount/input");