Spark组合了三个RDD对象

时间:2016-09-08 10:21:32

标签: apache-spark pyspark rdd

我试图将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))]

1 个答案:

答案 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