spark RDD创建方式:parallelize,makeRDD,textFile
parallelize
調(diào)用SparkContext 的 parallelize(),將一個(gè)存在的集合,變成一個(gè)RDD,這種方式試用于學(xué)習(xí)spark和做一些spark的測試
scala版本
?
| 1 | def parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T] |
- 第一個(gè)參數(shù)一是一個(gè) Seq集合
- 第二個(gè)參數(shù)是分區(qū)數(shù)
- 返回的是RDD[T]
?
| 1 2 3 | scala> sc.parallelize(List("shenzhen", "is a beautiful city")) ? res1: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[1] at parallelize at :22 |
java版本
?
| 1 | def parallelize[T](list : java.util.List[T], numSlices : scala.Int) : org.apache.spark.api.java.JavaRDD[T] = { /* compiled code */ } |
- 第一個(gè)參數(shù)是一個(gè)List集合
- 第二個(gè)參數(shù)是一個(gè)分區(qū),可以默認(rèn)
- 返回的是一個(gè)JavaRDD[T]
java版本只能接收List的集合
?
| 1 | JavaRDD javaStringRDD = sc.parallelize(Arrays.asList("shenzhen", "is a beautiful city")); |
makeRDD
只有scala版本的才有makeRDD
?
| 1 | def makeRDD[T](seq : scala.Seq[T], numSlices : scala.Int = { /* compiled code */ }) |
跟parallelize類似
?
| 1 | sc.makeRDD(List("shenzhen", "is a beautiful city")) |
textFile
調(diào)用SparkContext.textFile()方法,從外部存儲中讀取數(shù)據(jù)來創(chuàng)建 RDD
例如在我本地F:\dataexample\wordcount\input下有個(gè)sample.txt文件,文件隨便寫了點(diǎn)內(nèi)容,我需要將里面的內(nèi)容讀取出來創(chuàng)建RDD
scala版本
?
| 1 | var lines = sc.textFile("F:\\dataexample\\wordcount\\input") |
java版本
?
| 1 | JavaRDD lines = sc.textFile("F:\\dataexample\\wordcount\\input"); |
?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的spark RDD创建方式:parallelize,makeRDD,textFile的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scala:Function1、Func
- 下一篇: Spark RDD使用详解2--RDD创