0
BikeSharing 데이터 세트와 함께 스파크 결정 트리 모델의 결과를 사용하려고하는데 결과 결과를 [(날짜, 실제 값, 예측 값)] 형식으로 원합니다.3 개의 RDD 오브젝트를 결합한 스파크
하지만 결과는 다음 코드로 [(날짜, (실제 값, 예상 값))]입니다. 원하는 결과물을 얻으려면 어떻게해야합니까? 고맙습니다!
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, 8.0)), (u'2011-07-12 ', (36.786290322580648, 6.0))]
덕분에, 내가 시도를하여 이 코드가 포함 된 솔루션 tmp = date.map (lambda x : (x, 실제, preds)) 하지만 아래 오류 메시지가 나타납니다. 예외 : 작업 또는 변환에서 RDD를 브로드 캐스트하거나 RDD를 참조하려고 시도하는 것으로 보입니다. RDD 변환 및 동작은 드라이버에 의해서만 호출 될 수 있고 다른 변환에서는 호출되지 않을 수 있습니다. 예를 들어 rdd1.map (lambda x : rdd2.values.count() * x) 값은 rdd1.map 변환 내부에서 값 변환 및 개수 작업을 수행 할 수 없기 때문에 유효하지 않습니다. –