2016-12-09 23 views
0

私はスパークのデータフレームを作成する標準的な "hello world"と思われるものを使用してデータフレームを作成しようとしています。助けて!上記のコードcreateDataFrame()が失敗した理由を理解できません

from pyspark.sql.types import * 
schema = StructType([StructField("product", StringType(), True)]) 
l = [('foo')] 
rdd = sc.parallelize(l) 
df = sqlContext.createDataFrame(rdd, schema) 
df.show() 

エラー

ValueError: Unexpected tuple 'foo' with StructType` 

下のコードをスロー基本的に私は完全に困惑していますストレートpyspark.sql moduleから持ち上げています。

+0

[作成の可能性の重複Spark DataFrame。スキーマタイプを推論できません:](http://stackoverflow.com/questions/32742004/create-spark-dataframe-can-not-infer-schema-for-type-type-float) –

答えて

1

createDataFrameが引数としてRDD [行]を必要とするためです:

df = sqlContext.createDataFrame(rdd.map (lambda x: Row(x)), schema) 

はあなたに

完全なコードを正しいデータフレームを与える、テストスパーク1.6:

from pyspark.sql.types import * 

schema = StructType([StructField("product", StringType(), True)]) 
l = [('foo')] 
rdd = sc.parallelize(l) 

df = sqlContext.createDataFrame(rdd.map (lambda x: Row(x)), schema) 
df.show() 
+0

クール。私はJupyterで走っていますので、 'pyspark.sql import Row'から' 'Row 'を追加して動作させる必要がありましたが、完璧です。ありがとうございます。 – jamiet

関連する問題