在Python中从Spark DataFrame创建labeledPoints

在Python中从Spark DataFrame创建labeledPoints,第1张

在Python中从Spark DataFrame创建labeledPoints

如果您已经具有数字功能并且不需要其他转换,则可以使用

VectorAssembler
合并包含自变量的列:

from pyspark.ml.feature import VectorAssemblerassembler = VectorAssembler(    inputCols=["your", "independent", "variables"],    outputCol="features")transformed = assembler.transform(parsedData)

接下来,您可以简单地映射

from pyspark.mllib.regression import LabeledPointfrom pyspark.sql.functions import col(transformed.select(col("outcome_column").alias("label"), col("features"))  .rdd  .map(lambda row: LabeledPoint(row.label, row.features)))

从Spark
2.0开始

ml
mllib
API不再兼容,而后者正朝着弃用和移除的方向发展。如果仍然需要此功能,则必须转换
ml.Vectors
mllib.Vectors

from pyspark.mllib import linalg as mllib_linalgfrom pyspark.ml import linalg as ml_linalgdef as_old(v):    if isinstance(v, ml_linalg.SparseVector):        return mllib_linalg.SparseVector(v.size, v.indices, v.values)    if isinstance(v, ml_linalg.DenseVector):        return mllib_linalg.DenseVector(v.values)    raise ValueError("Unsupported type {0}".format(type(v)))

和地图:

lambda row: LabeledPoint(row.label, as_old(row.features)))


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5654611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存