gpt4 book ai didi

python - 在 Pyspark 中使用 UDF 函数时,密集向量应该是什么类型?

转载 作者:太空狗 更新时间:2023-10-30 01:04:43 25 4
gpt4 key购买 nike

<分区>

我想在pySpark中把List改成Vector,然后用这个专栏给Machine Learning模型训练。但是我的spark版本是1.6.0,没有VectorUDT()。那么我应该在 udf 函数中返回什么类型呢?

from pyspark.sql import SQLContext
from pyspark import SparkContext, SparkConf
from pyspark.sql.functions import *
from pyspark.mllib.linalg import DenseVector
from pyspark.mllib.linalg import Vectors
from pyspark.sql.types import *


conf = SparkConf().setAppName('rank_test')
sc = SparkContext(conf=conf)
spark = SQLContext(sc)


df = spark.createDataFrame([[[0.1,0.2,0.3,0.4,0.5]]],['a'])
print '???'
df.show()
def list2vec(column):
print '?????',column
return Vectors.dense(column)
getVector = udf(lambda y: list2vec(y),DenseVector() )
df.withColumn('b',getVector(col('a'))).show()

我已经尝试了很多类型,而这个 DenseVector() 给我错误:

Traceback (most recent call last):
File "t.py", line 21, in <module>
getVector = udf(lambda y: list2vec(y),DenseVector() )
TypeError: __init__() takes exactly 2 arguments (1 given)

请帮帮我

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