当我训练了一个randomforests分类器时,我也在spark 2.1中遇到了这个问题。在我使用spark 2.0之前,我没有这样的问题。所以我尝试了火花2.0.2。我的程序没有任何问题。
至于错误,我的猜测是数据没有均匀分区。也许在培训之前尝试重新分配您的数据。另外,不要设置太多分区。否则,每个分区可能只有很少的数据点,这可能会导致训练中出现一些边缘情况。
我不确定RandomForest有什么问题,但如果我使用DecisionTreesClassifier,上面的代码就可以了。也许由于RF是一种集合方法,它可能会尝试使用导致错误的数据集进行一些操作。但是,使用DT,它工作正常。
目前,这是我能想到的唯一解决方案。如果有人弄清楚上述问题的适当解决方案,请告诉我。
那是Spark的问题。将修复2.2版本。查看详细信息: https://issues.apache.org/jira/browse/SPARK-18036