如何在labeledpoint rdd中更改标签

rlcwz9us  于 2021-07-14  发布在  Spark
关注(0)|答案(0)|浏览(154)

我有大量的数据作为一个标签点rdd分配给七个不同的整数标签。

[LabeledPoint(5.0,[2590.0,56.0,2.0,212.0,-6.0,390.0,220.0,235.0,151.0,6225.0]),
 LabeledPoint(2.0, [2804.0,139.0,9.0,268.0,65.0,3180.0,234.0,238.0,135.0,6121.0])....

我需要将这个问题二进制化,以便通过mllib中的boostedgradienttrees,所以我希望所有标签为2.0的特性都是1.0,否则是0.0。我刚接触rdds,我一辈子都想不出如何在不遇到outofmemory错误的情况下更改标签。我尝试了几种不同的方法,我觉得这样的方法最简单:

def to_binary(Data):
    Datazero = Data.filter(lambda x: (x != 2.0, y))
    Data = Data.subtract(Datazero)
    Datazero = Datazero.map(lambda x:(0.0,y))
    Data = Data.map(lambda x: (1.0, y))
    Data = Datazero.union(Data)

    return Data

但很明显,这会返回一个错误,因为我不知道如何处理labeledpoint对象。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题