2016-11-14 1 views

답변

2

나중에 RDD에서 둘 이상의 작업 또는 호출 작업을 적용하도록 RDD를 유지할 수 있습니다. RDD 스파크를 지속 한 후 액션 수행을 위해 계산해야하는 모든 단계를 건너 뜁니다. spark에서 모든 변환은 게으른 것으로 평가됩니다. 즉, 액션을 호출 할 때 collect()를 호출하면 모든 변환이 처음 실행될 때 모든 변환이 실행됩니다. 즉, count와 같은 다른 액션을 다시 실행하면 모든 변환이 실행되고 RDD 중 하나가 지속됩니다. rdd2.collect 당신이 rdd2가 이미 통지로 모든 변환보다 실행됩니다 호출 할 때 모든 변환이 바로 위의 예에서와 같이 예를

val list = sc.parallelize(List(1,23,5,4,3,2)) 
val rdd1 = list.map(_+1) 
val rdd2 = rdd1.map(_+5).cache 
rdd2.collect 
rdd2.count 

에 대한 지속 일부를 모두 건너 뛸 지속 및 비 실행 다시 실행되지 않습니다 캐시이므로 count가 호출 될 때 위의 변환을 실행하지 않고 지속 된 rdd를 사용하여 결과를 계산합니다.

관련 문제