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

En este artículo, vamos a seleccionar un rango de filas de un marco de datos de PySpark.

Se puede hacer de estas formas:

  • Usando filtro().
  • Usando donde().
  • Usando la expresión SQL.

Creando Dataframe para demostración:

Python3

# importing module
import pyspark
 
# importing sparksession from pyspark.sql module
from pyspark.sql import SparkSession
 
# creating sparksession and giving an app name
spark = SparkSession.builder.appName('sparkdf').getOrCreate()
 
# list  of students  data
data = [["1", "sravan", "vignan", 67, 89],
        ["2", "ojaswi", "vvit", 78, 89],
        ["3", "rohith", "vvit", 100, 80],
        ["4", "sridevi", "vignan", 78, 80],
        ["1", "sravan", "vignan", 89, 98],
        ["5", "gnanesh", "iit", 94, 98]]
 
# specify column names
columns = ['student ID', 'student NAME',
           'college', 'subject1', 'subject2']
 
# creating a dataframe from the lists of data
dataframe = spark.createDataFrame(data, columns)
 
# display dataframe
dataframe.show()

Producción:

Método 1: Usar filtro()

Esta función se utiliza para filtrar el marco de datos seleccionando los registros según la condición dada.

Sintaxis : dataframe.filter (condición)

Ejemplo: código de Python para seleccionar el marco de datos basado en la columna subject2.

Python3

# select dataframe between
# 23 and 78 marks in subject2
dataframe.filter(
  dataframe.subject1.between(23,78)).show()

Producción:

Método 2: Usando where()

Esta función se utiliza para filtrar el marco de datos seleccionando los registros según la condición dada.

Sintaxis : dataframe.where(condición)

Ejemplo 1: programa de Python para seleccionar el marco de datos basado en la columna subject1.

Python3

# select dataframe between
# 85 and 100 in subject1 column
dataframe.where(
  dataframe.subject1.between(85,100)).show()

Producción:

Ejemplo 2: seleccione filas en el marco de datos por columna de universidad

Python3

# select dataframe in college column
# for vvit
dataframe.where(
  dataframe.college.between("vvit","vvit")).collect()

Producción:

[Row(ID=’2′, estudiante NOMBRE=’ojaswi’, college=’vvit’, sujeto1=78, sujeto2=89),

Row(ID=’3′, estudiante NOMBRE=’rohith’, college=’vvit’, sujeto1=100, sujeto2=80)]

Método 3: usar la expresión SQL

Al usar la consulta SQL con el operador between() podemos obtener el rango de filas.

Sintaxis: spark.sql(“SELECCIONE * DESDE mi_vista DONDE nombre_columna entre valor1 y valor2”)

Ejemplo 1: programa de Python para seleccionar filas del marco de datos basado en la columna subject2

Python3

# create view for the dataframe
dataframe.createOrReplaceTempView("my_view")
 
# data subject1 between 23 and 78
spark.sql("SELECT * FROM my_view WHERE\
subject1 between 23 and 78").collect()

Producción:

[Row(student ID=’1′, student NAME=’sravan’, college=’vignan’, subject1=67, subject2=89),

Row(student ID=’2′, student NAME=’ojaswi’, college=’vvit’, subject1=78, subject2=89),

Row(student ID=’4′, student NAME=’sridevi’, college=’vignan’, subject1=78, subject2=80)]

Ejemplo 2: Selección basada en ID

Python3

# create view for the dataframe
dataframe.createOrReplaceTempView("my_view")
 
# data subject1 between 23 and 78
spark.sql("SELECT * FROM my_view WHERE\
ID between 1 and 3").collect()

Producción:

[Row(ID=’1′, Student NAME=’sravan’, college=’vignan’, subject1=67, subject2=89),

Fila(ID=’2′, NOMBRE del estudiante=’ojaswi’, universidad=’vvit’, materia1=78, materia2=89),

Fila(ID=’3′, NOMBRE del estudiante=’rohith’, universidad=’vvit’, materia1=100, materia2=80),

Row(ID=’1′, estudiante NOMBRE=’sravan’, universidad=’vignan’, materia1=89, materia2=98)]

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *