J'ai un RDD
et je veux le convertir en pandas
dataframe
. Je sais que pour convertir RDD
en un dataframe
normal, nous pouvons le faire.
df = rdd1.toDF()
Mais je veux convertir le RDD
en pandas
dataframe
et pas un dataframe
normal. Comment puis-je le faire?
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
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'>