Búsqueda de sitios web

¿Cómo seleccionar un rango de filas de un marco de datos en PySpark?


El marco de datos en PySpark está definido por una colección compartida de datos que se puede utilizar para ejecutarse en máquinas informáticas y estructurar los datos en formato de filas y columnas. El rango de filas define una línea horizontal (conjunto de múltiples valores según la condición) en el conjunto de datos. En general, el rango establece los valores más bajo y más alto. En Python, tenemos algunas funciones integradas como filter(), Where() y Collect() para seleccionar un rango de filas de un marco de datos en PySpark.

Sintaxis

La siguiente sintaxis se utiliza en los ejemplos:

createDataFrame()

Este es un método integrado en Python que toma el argumento del esquema para definir los esquemas del marco de datos.

filter()

El filtro() es una función incorporada en Python que define y permite iterar las filas o columnas específicas de acuerdo con una condición determinada.

where()

Esta es una función incorporada en Python que se utiliza para establecer la condición específica en función de filas o columnas y su retorno por un elemento específico.

collect()

Pyspark Collect se usa para acceder a todos los elementos del conjunto de datos dado y se usa en bucles.

show()

show() es el método integrado en Python que se utiliza al final del programa para obtener el resultado.

Requisito de instalación −

pip install pyspark

Usando CreateDataframe()

CreateDataframe sigue el módulo PySpark que acepta dos parámetros: data_name (establece el valor de cada columna en cada fila) y data_Columns (establece el valor definiendo todas las columnas).

Ejemplo

En el siguiente ejemplo, iniciaremos el programa construyendo SparkSession.builder y estableceremos el nombre de la base de datos usando appName(), y asignaremos la función getOrCreate() que creará la sesión y la almacenará en la variable spark. Luego establezca los valores de los datos de la base de datos del cliente en la variable customer_Data. A continuación, establezca todos los valores en la variable data_Columns. Ahora cree el marco de datos usando el método createDataFrame() que acepta dos parámetros: customer_Data y data_Columns que estructurarán el formato en forma tabular y se conectarán con Spark y lo almacenarán en la variable customer_DF. Las formas tabulares muestran los valores en filas y columnas. Finalmente, usamos el método llamado show() con customer_DF para obtener los datos generales de cada columna.

# Creation of SparkSession
spark = SparkSession.builder \
   .appName('CUSTOMER') \
   .getOrCreate()    
# customer DataFrame
customer_Data = [("PREM KUMAR", 1281, "AC", 40000,4000),
   ("RATAN SINGH", 1289, "HOME THEATER", 35000, 5000),
   ("DAVID K", 1221, "NIKON CAMERA", 88000, 10000),
   ("JONATHAN REDDY", 1743, "GEYSER", 15000, 500),
   ("JASPREET BRAR", 1234, "HP LAPTOP", 78000, 3564),
   ("NEIL KAMANT", 1222, "WASHING MACHINE", 25000, 2000)
]
data_Columns = ["CUSTOMER NAME","PRODUCT ID","PRODUCT NAME",
   "Actual Price","EMI PER MONTH"]
customer_DF = spark.createDataFrame(customer_Data, data_Columns)
customer_DF.show()

Producción

+--------------+----------+---------------+------------+-------------+
| CUSTOMER NAME|PRODUCT ID|   PRODUCT NAME|Actual Price|EMI PER MONTH|
+--------------+----------+---------------+------------+-------------+
|    PREM KUMAR|      1281|             AC|       40000|         4000|
|   RATAN SINGH|      1289|   HOME THEATER|       35000|         5000|
|       DAVID K|      1221|   NIKON CAMERA|       88000|        10000|
|JONATHAN REDDY|      1743|         GEYSER|       15000|          500|
| JASPREET BRAR|      1234|      HP LAPTOP|       78000|         3564|
|   NEIL KAMANT|      1222|WASHING MACHINE|       25000|         2000|
+--------------+----------+---------------+------------+-------------+

Usando el método de filtro

Este método sigue el programa anterior y su uso nos permite establecer la condición del rango de filas de un marco de datos.

Ejemplo

En el siguiente ejemplo, seguimos el código de ejemplo anterior y aquí nos permite establecer las dos condiciones con un marco de datos, es decir, DF que acepta los valores de los parámetros como Precio real, que establece el rango de condiciones de filas entre el precio de 25000 a 40000 y encontrará el rango específico de las filas. Finalmente, estamos usando el método show() para obtener el resultado.

DF.filter((DF['Actual Price'] >= 25000) & (DF['Actual Price'] <= 40000)).show()

Producción

+-------------+----------+---------------+------------+-------------+
|CUSTOMER NAME|PRODUCT ID|   PRODUCT NAME|Actual Price|EMI PER MONTH|
+-------------+----------+---------------+------------+-------------+
|   PREM KUMAR|      1281|             AC|       40000|         4000|
|  RATAN SINGH|      1289|   HOME THEATER|       35000|         5000|
|  NEIL KAMANT|      1222|WASHING MACHINE|       25000|         2000|
+-------------+----------+---------------+------------+-------------+

Usando el método Where()

Este método sigue el primer ejemplo de este artículo, aquí utiliza el método where() para establecer el rango de filas de un marco de datos en PySpark.

Ejemplo

En el siguiente ejemplo, usaremos el método integrado donde() que acepta dos condiciones usando el operador y(&) para obtener el rango de filas. A continuación, el método where() utiliza el método show() para obtener el resultado.

DF.where((DF['EMI PER MONTH'] >= 10000) & (DF['EMI PER MONTH'] <= 38000)).show()

Producción

+-------------+----------+------------+------------+-------------+
|CUSTOMER NAME|PRODUCT ID|PRODUCT NAME|Actual Price|EMI PER MONTH|
+-------------+----------+------------+------------+-------------+
|      DAVID K|      1221|NIKON CAMERA|       88000|        10000|
+-------------+----------+------------+------------+-------------+

Usando el método Collect()

Este método sigue el primer ejemplo, lo que le permite iterar en columnas específicas para obtener el rango de filas de un marco de datos en PySpark.

Ejemplo

En el siguiente ejemplo, usaremos el bucle for donde la fila variable itera a través del marco de datos con el método Collect() e iterará todos los elementos de un marco de datos determinado. Ahora utiliza la declaración if para establecer la condición. Si el precio real está entre 30000 y 50000, devuelve el rango específico de filas. A continuación, utiliza el método print() que acepta una fila como parámetro para devolver el resultado.

for row in DF.collect():
   if 30000 <= row['Actual Price'] <= 50000:
      print(row)

Producción

Row(CUSTOMER NAME='PREM KUMAR', PRODUCT ID=1281, PRODUCT NAME='AC', Actual Price=40000, EMI PER MONTH=4000)
Row(CUSTOMER NAME='RATAN SINGH', PRODUCT ID=1289, PRODUCT NAME='HOME THEATER', Actual Price=35000, EMI PER MONTH=5000)

Conclusión

Discutimos los diversos métodos para obtener el rango de filas de un marco de datos en PySpark. Todos los métodos siguen el primer ejemplo porque ese ejemplo establece la estructura de entrada completa de los datos de filas y columnas. PySpark ha sido utilizado por las principales empresas multinacionales como Amazon, Walmart, Trivago y muchas más.

Artículos relacionados: