如何将csv转换为标记点的RDD?

时间:2018-11-15 09:58:43

标签: python csv pyspark rdd

我想对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标签的数据?

1 个答案:

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