2014-09-19 14 views
22

Ho usato cache() per memorizzare nella cache i dati in memoria, ma mi sono reso conto di vedere le prestazioni senza i dati memorizzati nella cache ho bisogno di rimozione dati dalla cache per rimuovere i dati dalla memoria:Come eseguire l'uncache RDD?

rdd.cache(); 
//doing some computation 
... 
rdd.uncache() 

ma ho ottenuto l'errore detto:

valore di rimozione dati dalla cache non è membro di org.apache.spark.rdd.RDD [(Int, Array [Float])]

non so come fare la rimozione dati dalla cache, allora!

risposta

43

Provare a utilizzare unpersist() (source).

+0

grazie mille @Josh – Rubbic

11

La funzione uncache non esiste. Penso che tu stavi cercando un perseverante. Che secondo Spark ScalaDoc contrassegna l'RDD come non persistente e rimuove tutti i blocchi dalla memoria e dal disco.

+0

Grazie hai ragione. Ho provato quello che ha detto Josh e sembra che funzioni! – Rubbic

+0

Va bene. È esattamente la stessa risposta. ;) – eliasah

+3

Sarebbe molto utile unire le risposte e rimuoverne una. Cosa ne pensi? –

3

Se si memorizzano nella cache i dati di origine in un RDD utilizzando .cache() o È stata dichiarata una memoria piccola. oppure viene utilizzata la memoria predefinita e circa 500 MB per me. e si sta eseguendo il codice più e più volte,

Quindi si verifica questo errore. Provare a cancellare tutto il RDD alla fine del codice, quindi ogni volta che il codice viene eseguito, lo RDD viene creato e anche cancellato dalla memoria.

farlo utilizzando: RDD_Name.unpersist()

Problemi correlati