Scala 并行读取java.util.Iterator

Scala 并行读取java.util.Iterator,scala,cassandra,Scala,Cassandra,我正在使用CassandraJava驱动程序从Cassandra表读取数据。执行查询后,我得到一个java.util.Iterator,并在for循环中读取它 我想知道我是否有可能并行读取这个迭代器,而不是在for循环中一次读取一个项 N个流式API(FS2?)中的任何一个可以在这里帮助我吗?(不,我现在不能使用Spark或Hadoop。)你试过了吗 拆分器是用于遍历和分割源元素的对象。这个 拆分器覆盖的元素的源可以是,例如 数组、集合、IO通道或生成器函数 如果对给定集合进行并行化比较困难,那

我正在使用CassandraJava驱动程序从Cassandra表读取数据。执行查询后,我得到一个java.util.Iterator,并在for循环中读取它

我想知道我是否有可能并行读取这个迭代器,而不是在for循环中一次读取一个项

N个流式API(FS2?)中的任何一个可以在这里帮助我吗?(不,我现在不能使用Spark或Hadoop。)

你试过了吗

拆分器是用于遍历和分割源元素的对象。这个 拆分器覆盖的元素的源可以是,例如 数组、集合、IO通道或生成器函数

如果对给定集合进行并行化比较困难,那么可以创建分区并处理每个分区

例如

Spliterator cassandraRecordsSpliterator=recordsIterator.Spliterator();
拆分器eachPartition=cassandraRecordsSpliterator.trySplit();
System.out.println(“+eachPartition.estimateSize())//我会给你x
System.out.println(“+cassandraRecordsSpliterator.estimateSize());//将有N-x
Spliterator<CassandraRecord> cassandraRecordsSpliterator = recordsIterator.spliterator();

Spliterator<CassandraRecord> eachPartition = cassandraRecordsSpliterator.trySplit();

System.out.println(" " + eachPartition.estimateSize()); //will give you x
System.out.println(" " + cassandraRecordsSpliterator.estimateSize()); // will have N - x