En este artículo, vamos a ordenar por valor en PySpark.
Creando RDD para demostración:
Python3
# importing module from pyspark.sql import SparkSession, Row # creating sparksession and giving an app name spark = SparkSession.builder.appName('sparkdf').getOrCreate() # create 2 Rows with 3 columns data = Row(First_name="Sravan", Last_name="Kumar", age=23), Row(First_name="Ojaswi", Last_name="Pinkey", age=16), Row(First_name="Rohith", Last_name="Devi", age=7) # create row on rdd rdd = spark.sparkContext.parallelize(data) # display data rdd.collect()
Producción:
[Row(First_name='Sravan', Last_name='Kumar', age=23), Row(First_name='Ojaswi', Last_name='Pinkey', age=16), Row(First_name='Rohith', Last_name='Devi', age=7)]
Método 1: Usar sortBy()
sortBy() se usa para ordenar los datos por valor de manera eficiente en pyspark. Es un método disponible en rdd.
Sintaxis: rdd.sortBy(expresión lambda)
Utiliza una expresión lambda para ordenar los datos en función de las columnas.
expresión lambda: lambda x: x[índice_columna]
Ejemplo 1: ordenar los datos por valores según la columna 1
Python3
# sort the data by values based on column 1 rdd.sortBy(lambda x: x[0]).collect()
Producción:
[Row(First_name='Ojaswi', Last_name='Pinkey', age=16), Row(First_name='Rohith', Last_name='Devi', age=7), Row(First_name='Sravan', Last_name='Kumar', age=23)]
Ejemplo 2: ordenar datos según los valores de la columna 2
Python3
# sort the data by values based on column 2 rdd.sortBy(lambda x: x[2]).collect()
Producción:
[Row(First_name='Rohith', Last_name='Devi', age=7), Row(First_name='Ojaswi', Last_name='Pinkey', age=16), Row(First_name='Sravan', Last_name='Kumar', age=23)]
Método 2: Usando takeOrdered()
Es el método disponible en RDD, se utiliza para ordenar valores según los valores de una columna en particular.
Sintaxis: rdd.takeOrdered(n,expresión lambda)
donde, n es el total de filas que se mostrarán después de ordenar
Ordene los valores según una columna en particular usando la función takeOrdered
Python3
# sort values based on # column 1 using takeOrdered function print(rdd.takeOrdered(3,lambda x: x[0])) # sort values based on # column 3 using takeOrdered function print(rdd.takeOrdered(3,lambda x: x[2]))
Producción:
[Row(First_name=’Ojaswi’, Last_name=’Pinkey’, age=16), Row(First_name=’Rohith’, Last_name=’Devi’, age=7), Row(First_name=’Sravan’, Last_name=’ Kumar’, edad=23)]
[Row(First_name=’Rohith’, Last_name=’Devi’, age=7), Row(First_name=’Ojaswi’, Last_name=’Pinkey’, age=16), Row(First_name=’Sravan’, Last_name=’ Kumar’, edad=23)]
Publicación traducida automáticamente
Artículo escrito por gottumukkalabobby y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA