2017-12-29 28 views
0

以下のパイプライン化されたRDDをデータフレームに変換しようとしています。パイプラインRDDをpysparkのDataframeに変換中にエラーが発生しました

パイプラインRDD - > user_rdd

['new_user1', 
'new_user2', 
'Onlyknows', 
'Icetea', 
'_coldcoffee_'] 

私は、私は次のエラーを取得しています以下のコード

schema = StructType([StructField('Username', StringType(), True)]) 
user_df = sqlContext.createDataFrame(user_rdd,schema) 
mention_df.show(20) 

を使用して変換しようとした:

ValueError: Unexpected tuple 'new_user1' with StructType 

私はtoDFを使用してみました( ):

user_df=user_rdd.toDF() 

発生したエラーがある。この時間:

TypeError: Can not infer schema for type: <type 'str'> 

がpysparkを使用してデータフレームにこれを変換する方法があるなら、私に教えてください。

+0

何が起こる:user_df = sqlContext.createDataFrame(user_rdd(1)、スキーマ)? – Kev1n91

+0

TypeError: 'PipelinedRDD'オブジェクトは呼び出し可能ではありません - (1)を使用して実行しようとすると、エラーメッセージでタイプエラーが発生します。インデックス作成はサポートされていないため、[1]も動作しません。 –

+0

[Create Spark DataFrame]の重複している可能性があります。スキーマを型の推論できません:](https://stackoverflow.com/questions/32742004/create-spark-dataframe-can-not-infer-schema-for-type-type-float) – user6910411

答えて

1

rddには文字列のリストがあります。これは本質的に1dデータです。データフレームには2dデータが必要です。問題が解決しなければならないタプルにRDDの各要素を変換する:あなたがこれを行う場合

user_df = sqlContext.createDataFrame(user_rdd.map(lambda x: (x,)), schema) 
#            ^^^^^^^^^^^^^^^^^^^ 
user_df.show() 
+------------+ 
| Username| 
+------------+ 
| new_user1| 
| new_user2| 
| Onlyknows| 
|  Icetea| 
|_coldcoffee_| 
+------------+ 
+0

優れた。どうもありがとうございます。出来た !!! –

+0

@shankarBalu嬉しいです。 – Psidom

関連する問題