read - ¿Cómo convertir Spark RDD a pandas dataframe en ipython?
pyspark read csv (2)
Tengo un RDD
y quiero convertirlo en el dataframe
pandas
. Sé que para convertir y RDD
a un dataframe
normal podemos hacer
df = rdd1.toDF()
Pero quiero convertir el RDD
a un dataframe
pandas
y no a un dataframe
normal. ¿Cómo puedo hacerlo?
Puedes usar la función toPandas()
:
Devuelve el contenido de este DataFrame como Pandas pandas.DataFrame.
Esto solo está disponible si Pandas está instalado y disponible.
>>> df.toPandas()
age name
0 2 Alice
1 5 Bob
Tendrá que usar un Spark DataFrame como un paso intermedio entre su RDD y el Pandas DataFrame deseado.
Por ejemplo, digamos que tengo un archivo de texto, flights.csv
, que se ha leído en un RDD:
flights = sc.textFile(''flights.csv'')
Puedes consultar el tipo:
type(flights)
<class ''pyspark.rdd.RDD''>
Si solo usas toPandas()
en el RDD, no funcionará. Dependiendo del formato de los objetos en su RDD, es posible que sea necesario algún procesamiento para ir a un Spark DataFrame primero. En el caso de este ejemplo, este código hace el trabajo:
# 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()
Puedes consultar el tipo:
type(pdsDF)
<class ''pandas.core.frame.DataFrame''>