Я получаю NPE, пытаясь объединиться и спасти RDD.Spark NullPointerException с saveAsTextFile
Код работает локально, и работает с кластером в оболочке scala, но выдает ошибку при отправке ее в качестве задания в кластер.
Я попытался распечатать с помощью take(), чтобы увидеть, содержит ли rdd некоторые нулевые данные, но это вызывает ту же ошибку - боль, потому что она работает нормально в оболочке.
Я сохраняю в HDFS и имею полный путь URL-адреса в переменной - модель экономит этот метод на этапе подготовки MLLib.
Любые идеи высоко оценены!
Scala Код (цельная Предсказание Func):
//Load the Random Forest
val rfModel = RandomForestModel.load(sc, modelPath)
//Make the predictions - Here the label is the unique ID of the point
val rfPreds = labDistVect.map(p => (p.label, rfModel.predict(p.features)))
//Collect and save
println("Done Modelling, now saving preds")
val outP = rfPreds.coalesce(1,true).saveAsTextFile(outPreds)
println("Done Modelling, now saving coords")
val outC = coords.coalesce(1,true).saveAsTextFile(outCoords)
Трассировка стека:
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 6.0 failed 4 times, most recent failure: Lost task 0.3 in stage 6.0 (TID 40, XX.XX.XX.XX): java.lang.NullPointerException
at GeoDistPredict1$$anonfun$38.apply(GeoDist1.scala:340)
at GeoDistPredict1$$anonfun$38.apply(GeoDist1.scala:340)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:328)
at scala.collection.Iterator$$anon$10.next(Iterator.scala:312)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)
Что находится в 'GeoDist1.scala: 340'? – Kenney
'val rfPreds = labDistVect.map (p => (p.label, rfModel.predict (p.features)))' – Dusted
Проверьте, нет ли точки, не имеющей функций. – eliasah