数据没有填充数据框架 - PySpark

时间:2017-06-02 17:20:38

标签: python apache-spark dataframe pyspark

此代码:

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])初始化?

1 个答案:

答案 0 :(得分:2)

您需要使用列表列表初始化rdd,其中每个子列表都是一行:

rdd = sc.parallelize([['str' , 'str' , 1 , 1]])
sqlContext.createDataFrame(rdd, schema).show()
+---+---+---+---+
|  p|  h|  q|  r|
+---+---+---+---+
|str|str|  1|  1|
+---+---+---+---+
相关问题