С помощью Spark Java RDD, как я могу обрабатывать результаты отдельных задач сразу же после завершения каждого из них, не ожидая функции collect ()? - PullRequest
0 голосов
/ 17 апреля 2019

Я запускаю Spark RDD через collect (). Каждая отдельная задача занимает много времени для обработки, и набор результатов, возвращаемый collect (), очень велик:

   List<Result> manyResults =
      javaSparkContext
      .parallelize(tasks, tasks.size())
      .map(task -> task.process())
      .collect();

Мне нужно обработать результаты на драйвере.

Вместо того, чтобы ждать завершения всех Результатов, я просто хотел бы обработать каждый Результат индивидуально , поскольку каждый завершает .

Есть ли способ сделать это в Spark? итерации по заданию Ответы по мере выполнения каждого из них?

1 Ответ

2 голосов
/ 17 апреля 2019

Либо вы продвигаете свою логику, чтобы она также распространялась (например, с помощью udf), либо вы можете создать аналогичный процесс в потоковой передаче искры и работать с небольшими партиями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...