,apache-spark,pyspark"/>

首页 > 解决方案 > TypeError:字段值:FloatType 不能接受类型中的对象 -0.016354798954796402

问题描述

我正在尝试将 pyspark 列表转换为 pyspark 数据框。我正在使用 pyspark 3.0.1。清单是

  array([-0.0163548 ,  0.01245932, -0.16051448, -0.00959805,  0.54802954,
    0.7846123 ,  0.04227988])

我正在使用以下语句将其转换为 pyspark 数据帧 coeff=spark.createDataFrame(trained_model.coefficients.values,FloatType()) 但我收到错误消息

TypeError: field value: FloatType can not accept object -0.016354798954796402 in type <class 'numpy.float64'>

你能建议我如何解决这个问题吗

标签: apache-sparkpyspark

解决方案


Spark 通常与 numpy dtypes 斗争,因此您可以在转换为 Spark 数据帧之前将它们转换为 Python 浮点类型:

coeff = spark.createDataFrame(
    [float(x) for x in trained_model.coefficients.values],
    FloatType()
)

推荐阅读