gpt4 book ai didi

python - 将 pyspark 数据框转换为标记点对象

转载 作者:行者123 更新时间:2023-11-28 22:34:34 24 4
gpt4 key购买 nike

df:
[Row(split(value,,)=[u'21.0', u'1',u'2']),Row(split(value,,)=[u'22.0', u'3',u'4'])]

如何将 df 中的每一行转换为 LabeledPoint 对象,该对象由标签和特征组成,其中第一个值是标签,其余 2 个是每行中的特征。

mycode:

df.map(lambda row:LabeledPoint(row[0],row[1: ]))

它似乎不起作用,是新手,因此任何建议都会有所帮助。

最佳答案

如果你想获得一个RDD,你需要创建一个函数来解析你的Array of String

a = sc.parallelize([([u'21.0', u'1',u'2'],),([u'22.0', u'3',u'4'],)]).toDF(["value"])
a.printSchema()

#root
#|-- value: array (nullable = true)
#| |-- element: string (containsNull = true)

要实现这个检查我的功能。

def parse(l):
l = [float(x) for x in l]

return LabeledPoint(l[0], l[1:])

定义这样的函数后,map你的DataFrame为了map它的内部RDD

a.map(lambda l: parse(l[0])).take(2)

# [LabeledPoint(21.0, [1.0,2.0]), LabeledPoint(22.0, [3.0,4.0])]

在这里您可以找到 published notebook我在那里测试了一切。

PD:如果您使用 toDF,您将获得两列(特征和标签)。

关于python - 将 pyspark 数据框转换为标记点对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38906803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com