我想对csv中的数据集执行决策树回归。要求我使用RDD进行。我尝试了以下方法将数据框转换为RDD:
pp_df = spark.read.csv("/usr/local/spark/data/hour.csv",header=True,inferSchema=True)
pp_df = pp_df.rdd.map(lambda x: LabeledPoint(x[10], x[:10])).collect()
然后我尝试将数据拆分以进行培训和测试:
(trainingData, testData) = pp_df.randomSplit([0.7, 0.3])
我收到以下错误:
AttributeError: 'list' object has no attribute 'randomSplit'
为什么它返回一个列表,以及如何正确地将csv转换为带有RDD标签的数据?
答案 0 :(得分:0)
pp_df = pp_df.rdd.map(lambda x: LabeledPoint(x[10], x[:10])).collect()
返回一个数组而不是RDD。因此,您不能对此使用randomSplit
方法。
火花动作:https://spark.apache.org/docs/latest/rdd-programming-guide.html