Comment convertir Spark RDD en pandas dataframe en ipython?

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

df = rdd1.toDF()

Mais je veux convertir le RDDpandas dataframe et pas normale dataframe. Comment puis-je le faire?

15
demandé sur user2966197 2016-01-15 21:34:18

2 réponses

Vous pouvez utiliser la fonction toPandas():

renvoie le contenu de cette DataFrame en Pandas pandas.DataFrame.

ce N'est disponible que si Pandas est installé et disponible.

>>> df.toPandas()  
   age   name
0    2  Alice
1    5    Bob
27
répondu jezrael 2016-01-15 19:10:30

vous devrez utiliser une DataFrame Spark comme étape intermédiaire entre votre RDD et la DataFrame Pandas désirée.

Par exemple, disons que j'ai un fichier texte, flights.csv, qui a été lu par un RDD:

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

Vous pouvez vérifier le type:

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

Si vous venez d'utiliser toPandas() sur le RDD, ça ne marchera pas. Selon le format des objets de votre RDD, certains traitements peuvent être nécessaires pour passer d'abord à une base de données Spark. Dans le cas de ce exemple, ce code fait 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'>
8
répondu RKD314 2017-11-30 09:01:13