當前位置:編程學習大全網 - 源碼下載 - Spark中parallelize函數和makeRDD函數的區別

Spark中parallelize函數和makeRDD函數的區別

1、區別

makeRDD函數可以為數據提供位置信息,而parallelize則五此功能。

2、makeRDD函數提供了位置信息的代碼

scala> val iteblog1 = sc.parallelize(List(1,2,3))

iteblog1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[10] at parallelize at <console>:21

scala> val iteblog2 = sc.makeRDD(List(1,2,3))

iteblog2: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[11] at makeRDD at <console>:21

scala> val seq = List((1, List("iteblog.com", "sparkhost1.com", "sparkhost2.com")),

| (2, List("iteblog.com", "sparkhost2.com")))

seq: List[(Int, List[String])] = List((1,List(iteblog.com, sparkhost1.com, sparkhost2.com)),

(2,List(iteblog.com, sparkhost2.com)))

scala> val iteblog3 = sc.makeRDD(seq)

iteblog3: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[12] at makeRDD at <console>:23

scala> iteblog3.preferredLocations(iteblog3.partitions(1))

res26: Seq[String] = List(iteblog.com, sparkhost2.com)

scala> iteblog3.preferredLocations(iteblog3.partitions(0))

res27: Seq[String] = List(iteblog.com, sparkhost1.com, sparkhost2.com)

scala> iteblog1.preferredLocations(iteblog1.partitions(0))

res28: Seq[String] = List()

  • 上一篇:杭州灣為什麽沒有像長江出海口壹樣淤土成陸?
  • 下一篇:什麽是抽象數據模型?主要特點是什麽?
  • copyright 2024編程學習大全網