我编写了以下测试代码。
Spliterator<Row> myRsSpliterator = rs.spliterator();
log.info(String.format("Tanny: size if known: %d ; estimate size: %d", myRsSpliterator.getExactSizeIfKnown(), myRsSpliterator.estimateSize()));
Spliterator<Row> splitRows = myRsSpliterator.trySplit();
log.info(String.format("Tanny: split size: %d ; split estimate size: %d", splitRows.getExactSizeIfKnown(), splitRows.estimateSize()));
log.info(String.format("Tanny: orig split size: %d ; orig estimate size: %d", myRsSpliterator.getExactSizeIfKnown(), myRsSpliterator.estimateSize()));
我注意到的结果是,
Tanny: Init rs size: 4
Tanny: size if known: -1 ; estimate size: 9223372036854775807
Tanny: split size: 4 ; split estimate size: 4
Tanny: orig split size: -1 ; orig estimate size: 9223372036854775807
这意味着,一旦我分割了记录,所有的记录都会被第一次分割,原始的分割器会返回一个乱码大小。有人知道这件事吗?
我正在使用以下驱动程序,
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.1.0</version>
</dependency>
有人知道解决这个问题的方法吗?我想在并行线程中迭代结果,以加快处理速度。
暂无答案!
目前还没有任何答案,快来回答吧!