使用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不能接受类型中的对象0.10000000000000001 输入'numpy.float64'>
有什么想法吗?
答案 0 :(得分:2)
NumPy类型(包括numpy.float64
)不是Spark SQL类型的有效外部表示。此外,您使用的模式并不反映数据的形状。
您应该直接使用标准Python类型和相应的DataType
:
spark.createDataFrame(samples.tolist(), FloatType()).toDF("x")