数据不被填充数据框 - PySpark

问题描述:

此代码:数据不被填充数据框 - 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| 
+---+---+---+---+