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 RDD
pandas
dataframe
et pas normale dataframe
. Comment puis-je le faire?
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
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'>