Перечисление Java spark параллельно - PullRequest
1 голос
/ 07 марта 2019

В Java Spark работает следующий код:

ZipFile zipFile = new ZipFile(zipFilePath);
Enumeration<? extends ZipEnter> entries = zipFiles.entries();
while(entries.hasMoreElements()) {
    ZipEntry entry = entries.nextElement();
    //my logic...
}

Я хочу сделать приведенный выше код параллельно с Spark или Java параллельно. Как я могу это сделать?

Спасибо

1 Ответ

0 голосов
/ 07 марта 2019

Приведенный ниже код будет обрабатывать логику одновременно для каждой записи в перечислении в Java и Scala соответственно.

В Java

entriesList = Collections.list(enumeration);
List<CompletableFuture<ZipEnter>> futureList = entriesList.stream().(x -> CompletableFuture. supplyAsync(() -> {
    //logic
}).collect(Collectors.toList());
CompletableFuture.allof(futureList);

In Scala

    entriesList = // to scala list

    Future[ZipEnter] futureList = entriesList.map(x => Future{
        // logic
    })

    Future.sequence(futureList)

Надеюсь, это поможет.

...