数据不被填充数据框 - PySpark
问题描述:
TypeError: StructType can not accept object 'str' in type <class 'str'>
我不是正确定义的架构:
schema = StructType([StructField('p', StringType(), False),StructField('h', StringType(), False)
,StructField('q', IntegerType(), False),StructField('r', IntegerType(), False)])
rdd = sc.parallelize(['str' , 'str' , 1 , 1])
sqlContext.createDataFrame(rdd, schema).show()
返回错误?排序是字符串,字符串,int,int,所以为什么不能用rdd = sc.parallelize(['str' , 'str' , 1 , 1])
进行初始化?
答
你需要用列表的列表,其中每个子列表是行初始化RDD:
rdd = sc.parallelize([['str' , 'str' , 1 , 1]])
sqlContext.createDataFrame(rdd, schema).show()
+---+---+---+---+
| p| h| q| r|
+---+---+---+---+
|str|str| 1| 1|
+---+---+---+---+