2017-06-02 8 views
0

このコード:データ - 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'> 

は私が正しく、スキーマを定義していませんか?順序は文字列、文字列、int、intです。なぜrdd = sc.parallelize(['str' , 'str' , 1 , 1])で初期化できませんか?

答えて

2

あなたは、各サブリストが行でリストのリストとRDDを初期化する必要があります。

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