Convertir Spark List a Pandas Dataframe
-
Use los métodos
topandas()
para convertir Spark List a Pandas Dataframe -
Use la función
parallelize()
para convertir Spark List a Python Pandas Dataframe - Conclusión
Este artículo convertirá la lista de filas de Spark en un marco de datos de Pandas.
Use los métodos topandas()
para convertir Spark List a Pandas Dataframe
Sintaxis de createDataframe()
:
current_session.createDataFrame(data, schema=None, samplingRatio=None, verifySchema=True)
Parámetros:
datos
: este parámetro contiene datos o conjunto de datos en forma de SQL/MySQL.esquema
: contiene el nombre de la columna del marco de datos.Ratio de muestreo
(float): Es el ratio de la fila.verify Schema
(bool): Es de tipo booleano para comprobar los tipos de datos del esquema.
Los parámetros anteriores devuelven el objeto de marco de datos de chispa. Un ejemplo de los métodos anteriores es el siguiente.
Primero pasamos los datos de la lista de filas usando esta función y creamos un marco de datos de chispa. Luego importamos PySpark y otros módulos relacionados.
Código:
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
Para crear un marco de datos de chispa, use la función createDataframe()
.
df = row_pandas_session.createDataFrame(row_object_list)
Usamos la función mostrar ()
para mostrar el marco de datos de chispa creado.
df.show()
Producción :
+--------------------+----------+
| Topic|Difficulty|
+--------------------+----------+
| Machine Learning| 10|
|Artifical Intligence| 5|
| Deep learning| 6|
| Python Ptogramming| 7|
+--------------------+----------+
Finalmente, usamos la función topandas()
para convertir el marco de datos de Spark en un marco de datos de Pandas. Luego, imprimimos el dataframe de Pandas.
pandas_df = df.toPandas()
pandas_df
Producción :
Topic Difficulty
0 Machine Learning 10
1 Artifical Intligence 5
2 Deep learning 6
3 Python Ptogramming 7
Código completo:
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
df = row_pandas_session.createDataFrame(row_object_list)
df.show()
pandas_df = df.toPandas()
pandas_df
Use la función parallelize()
para convertir Spark List a Python Pandas Dataframe
Para crear un RDD, usamos la función parallelize()
. Paralelizar se refiere a copiar los elementos de una colección predefinida en un conjunto de datos distribuido en el que podemos realizar operaciones paralelas.
Sintaxis:
sc.parallelize(data,numSlices)
Dónde:
sc
: objeto de contexto de chispa
Parámetros:
datos
: Son los datos o conjunto de datos realizados para RDDnumSlices
: Especifica el número de particiones. Este es un parámetro opcional.
El siguiente código es el mismo que en la sección anterior.
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
Ahora, creamos un marco de datos usando RDD.
rdd = row_pandas_session.sparkContext.parallelize(row_object_list)
rdd
Producción :
ParallelCollectionRDD[11] at readRDDFromFile at PythonRDD.scala:274
Ahora, creamos el marco de datos, como se muestra a continuación.
df = row_pandas_session.createDataFrame(rdd)
df.show()
Producción :
+--------------------+----------+
| Topic|Difficulty|
+--------------------+----------+
| Machine Learning| 10|
|Artifical Intligence| 5|
| Deep learning| 6|
| Python Ptogramming| 7|
+--------------------+----------+
Finalmente, conviértalo en un dataframe de Pandas.
df2 = df.toPandas()
print(df2)
Producción :
Topic Difficulty
0 Machine Learning 10
1 Artifical Intligence 5
2 Deep learning 6
3 Python Ptogramming 7
Conclusión
En este artículo, utilizamos dos métodos. Primero usamos la función createDataframe()
, seguida de la función topandas()
para convertir la lista de Spark en un marco de datos de Pandas.
El segundo método que usamos es la función parallelize()
. En este método, primero, creamos el marco de datos de Spark usando la misma función que el anterior y luego usamos RDD para paralelizar y crear el marco de datos de Spark.
Luego, el marco de datos de Spark se convierte en un marco de datos de Pandas mediante la función topandas()
.