web-dev-qa-db-fra.com

Comment convertir Spark RDD en pandas dataframe in ipython?)

J'ai un RDD et je veux le convertir en pandasdataframe. Je sais que pour convertir RDD en un dataframe normal, nous pouvons le faire.

df = rdd1.toDF()

Mais je veux convertir le RDD en pandasdataframe et pas un dataframe normal. Comment puis-je le faire?

30
user2966197

Vous pouvez utiliser la fonction toPandas() :

Renvoie le contenu de ce DataFrame sous la forme Pandas pandas.DataFrame.

Ceci est uniquement disponible si Pandas est installé et disponible.

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

Vous devrez utiliser un Spark DataFrame comme étape intermédiaire entre votre RDD et le Pandas DataFrame souhaité).

Par exemple, supposons que j'ai un fichier texte, flights.csv, Qui a été lu dans un RDD:

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

Vous pouvez vérifier le type:

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

Si vous utilisez simplement toPandas() sur le RDD, cela ne fonctionnera pas. En fonction du format des objets de votre RDD, un traitement peut être nécessaire pour accéder à un Spark DataFrame en premier. Dans le cas de cet exemple, ce code effectue le travail:

# 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()

Vous pouvez vérifier le type:

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