PySpark:TypeError:StructType不能接受类型<type'numpy.float64'=“”>中的对象0.10000000000000001

时间:2017-07-14 09:22:35

标签: python numpy apache-spark pyspark apache-spark-sql

使用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'&gt;

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

您应该直接使用标准Python类型和相应的DataType

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