通过以下代码使用 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")
关于python - PySpark:TypeError:StructType 无法接受类型 <type 'numpy.float64' > 中的对象 0.10000000000000001,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45099284/