Tengo un RDD
y quiero convertirlo en un 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)
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)