(SparkContext 코드에는 다양한 rdd 생성 방식을 지원한다. 그 중 공부하는 내용을 살펴본다)
전통적인 spark의 rdd 생성 방식은 parallelize 메소드를 사용하는 것이었다.
scala> val rdd1 = sc.parallelize(List(1,2,3))
rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[0] at parallelize at <console>:24
spark2에서 rdd 생성할 수 있는 makeRDD라는 메소드가 추가되었다.
scala> val rdd2 = sc.makeRDD(List(1,2,3))
rdd2: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[1] at makeRDD at <console>:24
게다가 파티셔닝도 되는 메소드이다.
scala> val rdd3 = sc.makeRDD(List((1, List("a", "b", "c")), (2, List("d", "e", "f"))))
rdd3: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[3] at makeRDD at <console>:24
scala> rdd3.preferredLocations(rdd3.partitions(1))
res6: Seq[String] = List(d, e, f)
scala> rdd3.preferredLocations(rdd3.partitions(0))
res7: Seq[String] = List(a, b, c)
'scala' 카테고리의 다른 글
[spark] where과 filter의 차이 (0) | 2017.05.23 |
---|---|
[spark2] spark SQL 예제 (0) | 2017.05.20 |
[scala] 라인 피드("\n") 관련 예시 코드 (0) | 2017.04.24 |
[scala] Iterator의 continually함수 (0) | 2017.04.24 |
[scala] range와 함수 내용을 넣은 Map 만들기- 예제 (0) | 2017.04.20 |