【发布时间】:2017-10-04 23:56:30
【问题描述】:
当提到 spark ml/mllib 文档时,它们都是从 svm 存储的示例开始的。这真的让我很沮丧,因为似乎没有一种直接的方法可以在不先存储它的情况下从标准 RDD[Row] 或 Dataframe(取自“表”选择)到这个符号。
这只是在处理 3 个左右的功能时带来的不便,但是当您将其扩展到大量功能时,这意味着您将进行大量的输入和搜索。
我最终得到了这样的结果:(其中“train”是数据集的随机拆分,其中包含存储在表中的特征)
val trainLp = train.map(row => LabeledPoint(row.getInt(0).toDouble, Vectors.dense(row(8).asInstanceOf[Int].toDouble,row(9).asInstanceOf[Int].toDouble,row(10).asInstanceOf[Int].toDouble,row(11).asInstanceOf[Int].toDouble,row(12).asInstanceOf[Int].toDouble,row(13).asInstanceOf[Int].toDouble,row(14).asInstanceOf[Int].toDouble,row(15).asInstanceOf[Int].toDouble,row(18).asInstanceOf[Int].toDouble,row(21).asInstanceOf[Int].toDouble,row(27).asInstanceOf[Int].toDouble,row(28).asInstanceOf[Int].toDouble,row(29).asInstanceOf[Int].toDouble,row(30).asInstanceOf[Int].toDouble,row(31).asInstanceOf[Double],row(32).asInstanceOf[Double],row(33).asInstanceOf[Double],row(34).asInstanceOf[Double],row(35).asInstanceOf[Double],row(36).asInstanceOf[Double],row(37).asInstanceOf[Double],row(38).asInstanceOf[Double],row(39).asInstanceOf[Double],row(40).asInstanceOf[Double],row(41).asInstanceOf[Double],row(42).asInstanceOf[Double],row(43).asInstanceOf[Double])))
要维护这是一场噩梦,因为这些行往往会经常更改。
而这里我只处于获取标记点的阶段,我什至还没有处于这些数据的 svm 存储版本。
我在这里遗漏了什么可能会挽救我几天的痛苦?
编辑:
我使用称为 vectorassembler 的东西来构建我的向量,离解决方案更近了一步
【问题讨论】:
-
我有完全相同的令人沮丧的问题,我正在使用 pspark
标签: scala apache-spark apache-spark-mllib