2017-05-01 3 views
0

나는 가능한 등록 된 임시 테이블 sqlContext.sql("show tables").collect().foreach(println)사용 가능한 RDD 목록을 확인하는 방법은 무엇입니까?

사용할 수 RDDs의 목록을 얻을 수있는 유사한 명령이 있는가 의 목록을 얻기 위해 아래의 명령을 사용하여 무엇입니까? 여기

는 (사용 스칼라) 2. 삭제/사용할 수 RDDs 3. 제거의 목록을 확인/원치 않는 RDDs를 지우고

How to delete an RDD in PySpark for the purpose of releasing resources? 전진 비행에 일부 RDD를 만들 수 1. 필요 내 요구 사항입니다

추가 참고 사항,이 링크를 통해 갔지만 모든 내 질문에 답변하지 않습니다 ... 또한 아래에서 시도했지만 unpersist 전후에 어떤 차이도 없으므로 확실하지 않은지 확인하는 방법 내 RDD가 메모리를 해제했습니다.

val tempRDD1 = RDD1.reduceByKey((acc,value)=> acc+value) 
tempRDD1.collect.foreach(println) 
tempRDD1.unpersist() 
tempRDD1.collect.foreach(println) 
+1

[Spark 목록에 캐시 된 RDD 이름 모두 나열] (0120-388-2114) – zero323

+0

언급 한 링크에 나는 찾고 있지만 대답은 나를 도울 수 없다. 한 대답은 "우리는 실제로 그것이 지속되지 않는다는 것을 알았습니다."라고 대답했습니다. 다른 대답은 "아직 파이썬으로 구현되지 않았습니다"라고 말하지만 저는 scala를 찾고 있습니다. – saranvisa

답변

0

RDD 데이터는 1. 지속 (캐시 됨) 될 때까지 저장되지 않으며 2. 이전 변환이 강제로 수행되는 동작이 발생합니다. 이 중 하나라도 발생하지 않으면 데이터가 저장되지 않습니다. "생성 된"것처럼 보이는 모든 RDD는 나중에 필요할 경우 데이터를 생성하기위한 작업 계획을 작성합니다. 이 모델을 게으른 평가라고합니다.

예에서 RDD는 캐시되지 않으므로 메모리에 데이터가 저장되지 않습니다. 그리고 unpersist 호출은 아무 효과가 없습니다.

+0

실제로 전체 코드를 공유하지는 않았지만 코드를 여러 RDD가 있고 tempRDD1이 RDD1에서 생성되었으며 RDD1에서 이미 적용된 동작임을 알 수 있습니다. – saranvisa

+0

RDD가 명시 적으로 캐시 되었습니까? – David

+0

캐싱되지 않음, 임시 RDD이며 몇 단계가 지나도 필요하지 않음 – saranvisa

관련 문제