java - 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 并行并行,我该怎么做?
谢谢
解决方案
下面的代码将分别为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)
希望能帮助到你。
推荐阅读
- regex - 正则表达式属性(理论)
- c++ - 为什么我不能在 ncurses 中向 printw 提供字符串参数?
- regex - 提取国名的表达式?
- algorithm - 是否有一种有效的算法来查找所有相交的多边形?
- c++ - 是否投射 shared_ptr
到 shared_ptr 改变它指向的对象? - java - 为什么这个 String HashMap 不能通过 *char* 键获得正确的值
- c# - 使某物同时在 X 轴和 Y 轴上移动
- python - 如何在 django.contrib.auth.forms UserCreationForm 中放置一个复选框
- javascript - 老虎机随机发生器
- c# - 如何在 C# 中设置列表的所有值