如何修复Spark(Scala)中的“ java.lang.Integer无法转换为java.lang.Double”错误?

时间:2019-03-25 00:50:50

标签: scala apache-spark

我有一个2列(1个整数和1个双精度)数据框“ fit_comparison”,其中包含预测值和线性回归结果。

我已使用以下代码获取回归指标:

val rm = new RegressionMetrics(
  fit_comparison.rdd.map(x =>
  (x(0).asInstanceOf[Double], x(1).asInstanceOf[Double])))

当我尝试获取如下所示的特定回归指标时,出现“ java.lang.Integer不能为java.lang.Double的情况”错误。

println("MSE: " + rm.meanSquaredError)

我首先必须将“ fit_comparison”的第一列转换为双精度吗?

感谢您的帮助,

1 个答案:

答案 0 :(得分:4)

您可以尝试以下方法:

val rm = new RegressionMetrics
(fit_comparison.rdd.map(x =>
   (x(0).asInstanceOf[Int].toDouble, 
    x(1).asInstanceOf[Int].toDouble)))