【发布时间】:2019-09-15 01:46:06
【问题描述】:
以下是值预测中的 My DataFrame 列(预测)
val PredictionModel = model.transform(testDF) PredictionModel.select("features","label","prediction")我创建了一个如下列表
val listOfPrediction = PredictionModel.select("prediction").collect.toList当我执行 listOfPrediction.foreach(println) 时,列表的输出是:
[1.0] [1.0] [0.0] [0.0] [2.0] 以此类推
我试图实现的逻辑是
val header: List[String] = List("ID", "predict_0", "predict_1", "predict_2") var Id : List[String]= Idcol var Predict0 = List[String]() var Predict1 = List[String]() var Predict2 = List[String]() for(x<-listOfPrediction) { if(x==0.0) { Predict0=1.toString() :: Predict0 Predict1=0.toString():: Predict1 Predcit2=0.toString():: Predict2 } else if(listOfPrediction==1.0) { Predict1=1.toString():: Predcit1 Predict0=0.toString() :: Predict0 Predcit2= 0.toString():: Predict2 } else if(listOfPrediction==2.0) { Predict2 =1.toString():: Predict2 Predict0=0.toString() :: Predict0 Precict1=0.toString():: Predict1 } else { Predict2 =0.toString():: Predict2 Predict0=0.toString() :: Predict0 Precict1=0.toString():: Predict1 } }然后我使用列值将它们写入 CSV 文件 问题是每次执行条件的 else 部分时。为什么是 这是怎么回事?
【问题讨论】:
-
如果您只是使用将它们添加为数据框列然后收集到列表中会容易得多,predictionModel.select($"I'd",when($"prediction"==0,1) . 否则 (0).alias("Predict1"),.....)
标签: scala apache-spark