此代码:
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()
返回错误:
TypeError: StructType can not accept object 'str' in type <class 'str'>
我没有正确定义架构吗?排序是string,string,int,int所以为什么不能用rdd = sc.parallelize(['str' , 'str' , 1 , 1])
初始化?
答案 0 :(得分:2)
您需要使用列表列表初始化rdd,其中每个子列表都是一行:
rdd = sc.parallelize([['str' , 'str' , 1 , 1]])
sqlContext.createDataFrame(rdd, schema).show()
+---+---+---+---+
| p| h| q| r|
+---+---+---+---+
|str|str| 1| 1|
+---+---+---+---+