web-dev-qa-db-ja.com

ipythonでSpark RDDをpandasデータフレームに変換するには?

RDDがあり、それをpandasdataframeに変換します。変換してRDDを通常のdataframeに変換して、できることを知っています

df = rdd1.toDF()

しかし、私はRDDpandasdataframeに変換し、通常のdataframeではありません。どうすればいいですか?

30
user2966197

関数 toPandas() を使用できます。

このDataFrameの内容をPandas pandas.DataFrameとして返します。

これは、Pandasがインストールされて使用可能な場合にのみ使用可能です。

>>> df.toPandas()  
   age   name
0    2  Alice
1    5    Bob
40
jezrael

RDDと目的のSpark DataFrameの間の中間ステップとしてPandas DataFrameを使用する必要があります。

たとえば、RDDに読み込まれたテキストファイルflights.csvがあるとします。

flights = sc.textFile('flights.csv')

タイプを確認できます:

type(flights)
<class 'pyspark.rdd.RDD'>

RDDでtoPandas()を使用するだけでは機能しません。 RDDのオブジェクトの形式によっては、最初にSpark DataFrameに移動するためにいくつかの処理が必要になる場合があります。この例の場合、このコードは次のことを行います。

# RDD to Spark DataFrame
sparkDF = flights.map(lambda x: str(x)).map(lambda w: w.split(',')).toDF()

#Spark DataFrame to Pandas DataFrame
pdsDF = sparkDF.toPandas()

タイプを確認できます:

type(pdsDF)
<class 'pandas.core.frame.DataFrame'>
13
RKD314