Apache spark 创建决策树作为聚合函数而不嵌套RDD

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): 有没有一种方

我有一大组包含非唯一ID和特征向量的行。我需要聚合每个ID的所有特性,并使用所有这些特性为每个ID生成决策树

我尝试过使用RDD或数据帧的各种解决方法,但我总是以死胡同告终。据我所知,嵌套RDD是不允许的,因此我无法获得必要的RDD[LabeledPoint]来训练map函数中的树

具有类似于

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