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?
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'>