【问题标题】:How can I convert csv to RDD of labeled points?如何将 csv 转换为标记点的 RDD?
【发布时间】:2019-04-18 09:32:15
【问题描述】:

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

【问题讨论】:

  • 在你提到 RDD(弹性分布式数据集)的标题中,后来你提到了 RRD(循环数据库)。我知道你可能是指 RDD,因为火花使用,但请保持一致..

标签: python csv pyspark rdd


【解决方案1】:

pp_df = pp_df.rdd.map(lambda x: LabeledPoint(x[10], x[:10])).collect()返回一个数组而不是 RDD。因此,您不能对此使用randomSplit 方法。

Spark 操作:https://spark.apache.org/docs/latest/rdd-programming-guide.html

【讨论】:

  • 感谢您指出这一点。你知道我如何返回一个 RRD 标记的数据集吗?
  • 你应该在没有 collect() 的情况下尝试一下。
猜你喜欢
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 2020-08-08
相关资源
最近更新 更多