gpt4 book ai didi

java - NoSuchElementException : next on empty iterator in MapPartitionsToPair-Spark

转载 作者:行者123 更新时间:2023-12-01 09:47:20 29 4
gpt4 key购买 nike

我尝试在 Spark Streaming 中执行 MapPartitionsToPair,但它总是返回错误:NoSuchElementException:空迭代器上的下一个。

这是我的代码:

 JavaPairDStream<String,String> streamGiveKey=   streamData1.mapPartitionsToPair(new PairFlatMapFunction<Iterator<String>, String, String>() {
@Override
public Iterable<Tuple2<String, String>> call(Iterator<String> stringIterator) throws Exception {

ArrayList<Tuple2<String,String>>arrayOfPartitionsWithKeys= new ArrayList<Tuple2<String, String>>();

while (stringIterator.hasNext()){
if(stringIterator.next()==null){
return null;
}

JsonMessage retMap = new Gson().fromJson(stringIterator.next(),JsonMessage.class);
String key= retMap.getSid();
Tuple2<String,String> keyValue= new Tuple2<String,String>(key,stringIterator.next());
arrayOfPartitionsWithKeys.add(keyValue);

}


return arrayOfPartitionsWithKeys;
}
});

谁能告诉我问题出在哪里?非常感谢。

最佳答案

每次调用 iterator.next() 时,都会在底层集合中向前移动一个元素。在这种情况下,我建议在循环中使用 next 一次并将其分配给本地变量并重用该变量...

关于java - NoSuchElementException : next on empty iterator in MapPartitionsToPair-Spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37885661/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com