三种创建RDD的方法

读取HDFS中的文件创建RDD

private def makeRDDFromHDFS = {
val conf: SparkConf = new SparkConf().setAppName(this.getClass.getSimpleName).setMaster(“local[*]”)
val sc = new SparkContext(conf)

//读取HDFS文件
val rdd: RDD[String] = sc.textFile(“hdfs://doit01:9000/word.txt”)
sc.stop()
}

读取本地问及那创建RDD

private def makeRDDFromDisk = { val conf: SparkConf = new SparkConf().setAppName(this.getClass.getSimpleName).setMaster(“local[*]”) val sc = new SparkContext(conf) // 返回的是处理整个文件数据的RDD val rdd: RDD[String] = sc.textFile(“d://word.txt”) rdd.foreach(println) sc.stop() }

通过并行化方式,将Driver端的集合转成RDD

这是将普通集合转换成分布式集合提交给集群

parallelize/makeRDD (makeRDD底层调用的是parallelize,所以使用parallelize创建RDD的小率比较高)

将Driver端的scala集合并行化成RDD,RDD中并没有真正要计算的数据,只是记录以后从集合中的哪些位置获取数据

val arr =Array(1,2,3,4,5,6)*

*val rdd1: RDD[Int] = sc.parallelize(arr)

你可能感兴趣的:(三种创建RDD的方法)