Java 如何迭代行的迭代器
我想迭代我的迭代器的前几行,我尝试如下迭代所有文件:Java 如何迭代行的迭代器,java,Java,我想迭代我的迭代器的前几行,我尝试如下迭代所有文件: Dataset<Row> DF = spark.read().format("csv").load("longfile.csv"); Iterator<Row> iter = DF.toLocalIterator(); while (iter.hasNext()) { // i want a condition here to iterate only over the 20
Dataset<Row> DF = spark.read().format("csv").load("longfile.csv");
Iterator<Row> iter = DF.toLocalIterator();
while (iter.hasNext()) { // i want a condition here to iterate only over the 20 first lines of my CSV
Row item = iter.next();
System.out.println(item);
}
Dataset DF=spark.read().format(“csv”).load(“longfile.csv”);
迭代器iter=DF.tolocaterator();
while(iter.hasNext()){//我希望这里有一个条件,只在CSV的前20行上迭代
行项目=iter.next();
系统输出打印项次(项);
}
我的问题是如何将迭代限制为仅20次?
谢谢我建议在计数完成后使用int计数和break:
Dataset<Row> DF = spark.read().format("csv").load("longfile.csv");
Iterator<Row> iter = DF.toLocalIterator();
int count = 0;
while (iter.hasNext()) { // i want a condition here to iterate only over the 20 first lines of my CSV
count++;
Row item = iter.next();
System.out.println(item);
if(count > 20) break;
}
Dataset DF=spark.read().format(“csv”).load(“longfile.csv”);
迭代器iter=DF.tolocaterator();
整数计数=0;
while(iter.hasNext()){//我希望这里有一个条件,只在CSV的前20行上迭代
计数++;
行项目=iter.next();
系统输出打印项次(项);
如果(计数>20)中断;
}
好的,如果没有其他解决方案,我将接受您的回答作为我问题的解决方案。谢谢如果您希望在while循环的顶部设置条件,那么您可以使用此答案,但在while条件中移动条件,如:while(iter.hasNext()&&count>20)
在while循环中使用这种机制实际上产生了一个错误@玛斯尼科尔,你是welcome@marcnicole按照@MedElgarnaoui所示的标准做法,我们基本上是模仿一个上限为20的for
循环