2015-01-13 13 views

risposta

3

No, un RDD è collegato a un singolo SparkContext. L'idea generale è che hai un cluster Spark e un programma driver che dice al cluster cosa fare. Questo driver avrebbe il SparkContext e avviare le operazioni sugli RDD.

Se si desidera spostare semplicemente un RDD da un programma di driver a un altro, la soluzione è di scriverlo su disco (S3/HDFS/...) nel primo driver e caricarlo da disco nell'altro driver.

11

Come già affermato da Daniel Darabos non è possibile. Ogni oggetto distribuito in Spark è limitato a un contesto specifico che è stato utilizzato per crearlo (SparkContext in caso di RDD, SQLContext in caso di set di dati DataFrame). Se si desidera condividere oggetti tra applicazioni, è necessario utilizzare i contesti condivisi (vedere ad esempio spark-jobserver, Livy o Apache Zeppelin). Dal RDD o DataFrame è solo un piccolo oggetto locale non c'è davvero molto da condividere.

La condivisione dei dati è un problema completamente diverso. È possibile utilizzare la cache di memoria specializzata (Apache Ignite) o distribuita in file system di memoria (come Alluxio - ex Tachyon) per ridurre al minimo la latenza quando si passa da un'applicazione all'altra, ma non è possibile evitarla.

0

Non è nativamente, a mio avviso, RDD non è dati, ma un modo per creare dati tramite trasformazioni/filtri dai dati originali.

Un'altra idea è quella di condividere i dati finali. Quindi, si memorizzare il RDD in un data-store, come ad esempio: - HDFS (un file in parquet, ecc ..) - elasticsearch - Apache Ignite (in memoria)

penso che vi piacerà Apache Ignite : https://ignite.apache.org/features/igniterdd.html

Apache Ignite fornisce un'implementazione di Spark RDD astrazione che consenta di condividere facilmente stato in memoria su più Spark lavori, sia all'interno della stessa applicazione o tra diversi Spark applicazioni.

IgniteRDD è implementato come è una vista su una cache Ignite distribuita, che può essere implementato sia nel processo di lavoro Spark esecuzione, o su un lavoratore Spark, o nel proprio cluster.

(ho lasciato si scava la loro documentazione per trovare quello che stai cercando.)

Problemi correlati