Scala java.lang.NoSuchElementException错误

Scala java.lang.NoSuchElementException错误,scala,for-loop,apache-spark,nosuchelementexception,Scala,For Loop,Apache Spark,Nosuchelementexception,我有一个Scala for循环,如下所示: val a = sc.textFile("path to file containing 8 elements") for(i <- 0 to a.count.toInt) { println((a.take(i).last)) } val a=sc.textFile(“包含8个元素的文件路径”) 对于(i有两个问题 1) 用于定义范围(从0到a.count.toInt)的“to”运算符在这里是一个问题,因为它包含从0到8的范围。在8个

我有一个Scala for循环,如下所示:

val a = sc.textFile("path to file containing 8 elements")
for(i <- 0 to a.count.toInt)
{
    println((a.take(i).last))
}
val a=sc.textFile(“包含8个元素的文件路径”)
对于(i有两个问题

1) 用于定义范围(从0到a.count.toInt)的“to”运算符在这里是一个问题,因为它包含从0到8的范围。在8个元素的集合中,它试图访问索引8处的元素

您可以使用0直到a.count.toInt

2) 第二个问题是“last”操作符的调用方式。当i=0时,表达式a.take(i)是一个空集合,因此对其调用“last”会导致NoTouchElementException

为什么每次都要从集合中迭代获取1、2、3…8个元素来获取最后一个元素


你可以用8个元素集合来做你想做的事情,但是如果你想在一个较大的RDD上做这件事,你应该考虑缓存RDD,如果你想在更大的RDD上做这样的事情。

哪一行抛出?你想做什么?我试图逐个打印文件中的所有元素。抛出我检查过的错误,你提到的第二个问题实际上抛出了错误。是的,正确调用带有较大参数的“take”不会导致任何问题。