0

계산 된 rdd를 다른 위치에 저장하는 방법을 알고 싶습니다. 또한 계산없이 알림을 위해 같은 것을 확장하십시오.rdd를 다른 S3 버킷에 simultaniously 저장하는 방법

rdd = <do some action> 

내가 rdd.saveAstextFile("s3://<location1>")location1, 에 저장합니다하지만 location2에 저장하려면 방법도 그것을 어떻게 알고? persist/cache (내 이해는 cache/persist 마스터 노드에 있음)이 작동 여부는 rdd 크기가 매우 큰지 잘 모르겠습니다.

도와주세요.

답변

0

내 이해는 마스터 노드에 캐시됩니다.

어디에서 찾았습니까? 이것은 정확하지 않습니다. 아래 스파크 문서에 따라 설명입니다.

Spark의 가장 중요한 기능 중 하나는 작업 전반에 걸쳐 메모리에 데이터 집합을 유지 (또는 캐싱)하는 것입니다. RDD를 지속하면 각 노드는 메모리에 계산 된 모든 파티션을 저장하고 해당 데이터 세트 (또는 그로부터 파생 된 데이터 세트)의 다른 작업에서 다시 사용합니다. 이렇게하면 향후 작업을 훨씬 빠르게 (종종 10 배 이상) 수행 할 수 있습니다. 캐싱은 반복 알고리즘 및 빠른 대화식 사용을위한 핵심 도구입니다. 또한

,

캐시() 메소드 StorageLevel.MEMORY_ONLY

즉 캐시() 지속 유사하다 (StorageLevel 인 기본 저장 레벨을 사용하는 약칭이며 .MEMORY_ONLY). 요구 사항에 따라 사용할 저장소 수준을 결정하려면이 링크를 클릭하십시오. https://spark.apache.org/docs/2.1.0/programming-guide.html#which-storage-level-to-choose

당신은이 개 위치에 저장 아래 사용할 수 있습니다

rdd.cache() 
rdd.saveAstextFile("s3://<location1>") 
rdd.saveAstextFile("s3://<location2>") 

자세한 내용은 여기에 있습니다 : https://spark.apache.org/docs/2.1.0/programming-guide.html#rdd-persistence

관련 문제