Scala Spark:java.util.NoSuchElementException:找不到键:-1.0

时间:2018-08-23 17:08:07

标签: scala apache-spark apache-spark-ml

我正在通过火花[[https://spark.apache.org/docs/2.0.0/ml-classification-regression.html#random-forest-classifier]

运行RF模型

我的问题是,如果我加载2个不同的数据帧以进行训练和测试,例如:

val Array(trainingData, testData) = Array(convertedVecDF, convertedVecDF_test)

我得到了上面的“ java.util.NoSuchElementException:找不到键:-1.0”,这是错误的原因,但是当我执行以下操作时,我什么也没得到

val data = convertedVecDF.union(convertedVecDF_test)
val Array(trainingData, testData) = data.randomSplit(Array(0.7, 0.3))

然后运行链接中的代码,即可正常工作。

所有变量的类:数据,convertedVecDF,convertedDF_test,trainingData,testData为Class[_ <: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]] = class org.apache.spark.sql.Dataset

当我像第一种情况一样运行变量时,并使用非常小的测试数据(例如10分),效果很好

那是为什么?似乎是资源访问问题,但我似乎无法理解Spark的工作方式。 如何处理第一种情况?即使用单独的火车/测试数据跑步

编辑

此问题是由于以下原因引起的:Error when passing data from a Dataframe into an existing ML VectorIndexerModel当我转到Spark 2.3.1时,它解决了该问题

0 个答案:

没有答案