Apache spark 创建决策树作为聚合函数而不嵌套RDD
我有一大组包含非唯一ID和特征向量的行。我需要聚合每个ID的所有特性,并使用所有这些特性为每个ID生成决策树 我尝试过使用RDD或数据帧的各种解决方法,但我总是以死胡同告终。据我所知,嵌套RDD是不允许的,因此我无法获得必要的RDD[LabeledPoint]来训练map函数中的树 具有类似于Apache spark 创建决策树作为聚合函数而不嵌套RDD,apache-spark,decision-tree,rdd,apache-spark-mllib,Apache Spark,Decision Tree,Rdd,Apache Spark Mllib,我有一大组包含非唯一ID和特征向量的行。我需要聚合每个ID的所有特性,并使用所有这些特性为每个ID生成决策树 我尝试过使用RDD或数据帧的各种解决方法,但我总是以死胡同告终。据我所知,嵌套RDD是不允许的,因此我无法获得必要的RDD[LabeledPoint]来训练map函数中的树 具有类似于 idFeatures: RDD[(String, Iterable[LabeledPoint])] 我想做的事情与此类似(由于嵌套RDD,它返回NullPointerException): 有没有一种方
idFeatures: RDD[(String, Iterable[LabeledPoint])]
我想做的事情与此类似(由于嵌套RDD,它返回NullPointerException):
有没有一种方法可以在不遍历不同id集的情况下逐个生成树(不是给定id集大小的选择)?研究如何使用RDD。treeAggregate
def treeAggregate[U: ClassTag](zeroValue: U)(
seqOp: (U, T) => U,
combOp: (U, U) => U
您可以将trainRegressor放入顺序Op(第一个参数),然后将汇总操作放入联合收割机Op(第二个参数)您有多少数据?每个id有多少个不同的id和点数?WI有大约4000万个id,每个id的点数在1到500之间。考虑到它们并不多,我想自己实施树结构,但我宁愿使用mlib提供的那些。我不确定我是否理解这个答案。我考虑过类似的事情,但嵌套RDD仍然存在问题。trainRegressor函数要求将完整分区作为每个调用的标记点的RDD,因此我不能将其用作顺序操作(除非我实现了一个trainRegressor函数,该函数将每个特性分别发布到树中)。
def treeAggregate[U: ClassTag](zeroValue: U)(
seqOp: (U, T) => U,
combOp: (U, U) => U