【发布时间】:2017-06-09 18:17:44
【问题描述】:
我正在尝试通过指定列标签和数据类型从现有 RDD 创建一个数据框,但我得到了这个类型错误:
from pyspark.sql import SQLContext
from pyspark.sql.types import *
sqlContext = SQLContext(sc)
yFieldTypes = [FloatType()]
ySchemaString = "Predictor"
fy_data = [StructField(field_name, field_type, True) \
for field_name, field_type in zip(ySchemaString.split(), yFieldTypes)]
schema_y = StructType(fy_data)
所以架构如下:
StructType(List(StructField(Predictor,FloatType,true)))
而我的 RDD datay.take(10) 输出如下:
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
当我想创建我的数据框时:
dfy = sqlContext.createDataFrame(datay, schema_y)
我得到这个类型错误:
TypeError: StructType(List(StructField(Predictor,FloatType,true))) can not accept object in type <type 'float'>
【问题讨论】:
-
你试过在你的 rdd 上调用 toDF() 吗?
标签: apache-spark dataframe pyspark apache-spark-sql rdd