gpt4 book ai didi

scala - Spark scala 抛出 java.util.NoSuchElementException : key not found: 0 exception

转载 作者:行者123 更新时间:2023-12-02 22:55:37 26 4
gpt4 key购买 nike

我有一段像这样的 Spark scala 代码:

val conf = new SparkConf().setAppName("MatrixInversion").setMaster("local")

val sc = new SparkContext(conf)

def main (args: Array[String]) {

var array:Array[Array[Double]]=new Array(2)
for(i<- 0 until 2)
array(i)=new Array(2)

array(0)(0)=1
array(0)(1)=2
array(1)(0)=3
array(1)(1)=4

sc.makeRDD(array).cache()

//val matrixA3=sc.textFile("A3")
testCache()

sc.stop()

}

def testCache():Unit={

val rdds=sc.getPersistentRDDs
val cacheArray=rdds(0).asInstanceOf[RDD[Array[Double]]]
println("print cachaArray")
cacheArray.collect()
val cacheLength=cacheArray.collect().length
println("length"+cacheLength)
}

现在就可以了。但是当我取消注释这一行时: val matrixA3=sc.textFile("A3")

它有这样的错误:

Exception in thread "main" java.util.NoSuchElementException: key not found: 0
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:58)
at scala.collection.MapLike$class.apply(MapLike.scala:141)
at scala.collection.AbstractMap.apply(Map.scala:58)
at com.scala.inversion.test$.testCache(test.scala:117)

为什么?

最佳答案

你的代码实际上是错误的。

查看该行

val cacheArray=rdds(0).asInstanceOf[RDD[Array[Double]]]

rdds 这里,它的类型是 scala.collection.Map[Int,org.apache.spark.rdd.RDD[_]]

但是,键 (Int) 并不总是恒定的。 (你可以缓存其他东西)。对于您的代码,在 map 中找不到 key == 0

例如,我在我的电脑上测试了你的代码,rdds

Map(9 -> ParallelCollectionRDD[9]

关于scala - Spark scala 抛出 java.util.NoSuchElementException : key not found: 0 exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29271879/

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