首页 > 解决方案 > Java spark 并行枚举

问题描述

我在 Java Spark 中运行了以下代码:

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

我想将上面的代码与 Spark 或 Java 并行并行,我该怎么做?

谢谢

标签: javaapache-sparkparallel-processing

解决方案


下面的代码将分别为java和scala枚举中的每个条目同时处理逻辑。

在 Java 中

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

在斯卡拉

    entriesList = // to scala list

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

    Future.sequence(futureList)

希望能帮助到你。


推荐阅读