Как я могу заставить каждого Spark Worker запускать одну и ту же функцию только один раз для каждого Worker, когда работа завершается? - PullRequest
0 голосов
/ 05 декабря 2018

Я запускаю искровое задание с использованием пряжи, и мой код написан на Java, теперь я хочу выполнить функцию, чтобы некоторые ресурсы собирались у каждого работника по окончании работы.

Я пытался mapPartitions() функция, но в одном и том же работнике выполняется много разделов, поэтому функция будет выполняться несколько раз.

Могу ли я реализовать это и как?

код обновлен:

 JavaRDD<String> sourceRDD = context.textFile(inputPath);
 sourceRDD.map(doSomething()); // every worker has it's env, I want to execute a function in every worker when map() ends.
 doResourceCollect(); // It runs in the final worker, so I can't get worker's env.
...