Skip to main content
 首页 » 编程设计

python之PySpark:TypeError:StructType 无法接受类型 type 'numpy.float64' > 中的对象 0.10000000000000001

2024年08月20日35duanxz

通过以下代码使用 PySpark 时:

from pyspark.sql.types import * 
samples = np.array([0.1,0.2]) 
dfSchema = StructType([StructField("x", FloatType(), True)]) 
spark.createDataFrame(samples,dfSchema) 

我得到:

TypeError: StructType can not accept object 0.10000000000000001 in type type 'numpy.float64'>

有什么想法吗?

请您参考如下方法:

NumPy 类型,包括 numpy.float64,不是 Spark SQL 类型的有效外部表示。此外,您使用的架构并不反射(reflect)数据的形状。

您应该使用标准的 Python 类型,并直接使用相应的 DataType:

spark.createDataFrame(samples.tolist(), FloatType()).toDF("x")