【发布时间】:2016-02-23 06:18:37
【问题描述】:
我有一大组包含不唯一 ID 和特征向量的行。我需要聚合每个 ID 的所有特征,并使用所有这些特征为每个 ID 生成决策树。
我已经尝试了各种使用 RDD 或数据帧的解决方法,但我总是陷入死胡同。据我所知,不允许嵌套 RDD,所以我无法获得必要的 RDD[LabeledPoint] 来训练地图函数中的树。
具有类似
的结构idFeatures: RDD[(String, Iterable[LabeledPoint])]
我想做的是与此类似的事情(由于嵌套 RDD 而返回 NullPointerException):
val trees = idFeatures.groupByKey().mapValues(features => {
DecisionTree.trainRegressor(sc.parallelize(features.to[Seq]), Map[Int, Int](), impurity, maxDepth, maxBins)
});
有没有一种方法可以做到这一点,而无需遍历整个不同的 id 集并一一生成树(不是考虑到 id 集的大小的选择)?
【问题讨论】:
-
你有多少数据?每个 id 有多少个不同的 id 和点数? W
-
我有大约 4000 万个 id,每个 id 的点数在 1 到 500 之间。考虑到它们并不多,我正在考虑自己实现树构造,但我宁愿使用mlib提供的那些
标签: apache-spark decision-tree rdd apache-spark-mllib