1

pandasread_csv()関数をiso-8859-1使用して、次のようにファイルを読み取ります。

df = pd.read_csv('path/file', \
                   sep = '|',names =['A','B'], encoding='iso-8859-1')

それでは、MLLib の word2vect を使用したいと思います。ただし、パラメーターとして RDD のみを受け入れます。そこで、次のように pandas データフレームを RDD に変換しようとしました。

from pyspark.sql import SQLContext
spDF = sqlContext.createDataFrame(df['A'])
spDF.show()

とにかく、次の例外が発生しました。

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

エンコーディングパラメータのようなものがあるかどうかを確認するために、Pyspark のドキュメントにアクセスしましたが、何も見つかりませんでした。特定の pandas データフレーム列を Pyspark RDD に変換する方法について何か考えはありますか?

アップデート:

@zeros の回答から、これは、次のように columnn をデータフレームとして保存しようとしたものです。

new_dataframe = df_3.loc[:,'A']
new_dataframe.head()

それで:

from pyspark.sql import SQLContext
spDF = sqlContext.createDataFrame(new_dataframe)
spDF.show()

そして、私は同じ例外を得ました:

TypeError: Can not infer schema for type: <type 'unicode'>
4

2 に答える 2

2

を使用する場合df['A']は ではありませんpandas.DataFrameが、pandas.Seriesそれを渡すとSqlContext.createDataFrame、他のものとして扱われIterable、PySpark は単純な型から への変換をサポートしませんDataFrame

Pandas DataFrameuselocメソッドとしてデータを保持する場合:

df.loc[:,'A']
于 2016-03-18T00:19:26.270 に答える