我试图将Spark决策树模型的结果与BikeSharing数据集一起使用,我希望以[(日期,实际值,预测值)]的形式得出结果结果。
但我得到的结果是[(日期,(实际值,预测值))],代码如下。如何获得所需的输出形式?谢谢!
raw_data = sc.textFile(filename)
records = raw_data.map(lambda x: x.split(","))
records.cache()
data_dt = records.map(lambda r: LabeledPoint(extract_label(r), extract_features_dt(r)))
dt_model = DecisionTree.trainRegressor(data_dt, {})
preds = dt_model.predict(data_dt.map(lambda p: p.features))
actual = records.map(lambda p: extract_label(p))
true_vs_predicted_dt = actual.zip(preds)
date = records.map(lambda x: x[1])
true_vs_predicted_dt = date.zip(true_vs_predicted_dt)
true_vs_predicted_dt.take(5)
[(u'2011-07-12',(36.786290322580648,22.0)),(u'2011-07-12',(36.786290322580648,14.0)),(u'2011-07-12',(36.786290322580648) ,9.0)),(u'2011-07-12',(36.786290322580648,8.0)),(u'2011-07-12',(36.786290322580648,6.0))]
答案 0 :(得分:0)
内部元组是从true_vs_predicted_dt = actual.zip(preds)创建的。 for (var i = 0; i < arrayOne.length; i++) {
var clintonValues = arrayOne[i].concat(arrayTwo[i])
}
函数将生成元组列表。
如果要保留当前结构,可以将Tuple2映射到Tuple3
未经测试的代码(Scala - 可以很容易地翻译成Python):
zip