2015-10-26 16 views

risposta

6

In realtà è piuttosto semplice. Tutto ciò che accade all'interno della chiusura creata da una trasformazione avviene su un lavoratore. Significa che se qualcosa viene passato all'interno di map(...), filter(...), mapPartitions(...), groupBy*(...), aggregateBy*(...) viene eseguito sui lavoratori. Include la lettura di dati da una memoria persistente o da fonti remote.

Azioni come count, , fold(...) di solito vengono eseguite su driver e lavoratori. Il sollevamento pesante viene eseguito in parallelo dai lavoratori e alcuni passaggi finali, come la riduzione delle uscite ricevute dai lavoratori, vengono eseguiti in sequenza sul driver.

Tutto il resto, come l'attivazione di un'azione o la trasformazione, avviene sul conducente. In particolare, significa ogni azione che richiede l'accesso a SparkContext. In PySpark significa anche una comunicazione con il gateway Py4j.

+0

Grazie! –

1

Tutte le chiusure passate come argomento al metodo di JavaRDD/JavaPairRDD/simile e alcuni metodi di queste classi verranno eseguiti dai nodi spark. Tutto il resto è il codice del conducente.

Problemi correlati