Pyspark TakeRorded y Takesample

Pyspark TakeRorded y Takesample
RDD significa conjuntos de datos distribuidos resilientes. Podemos llamar a RDD como una estructura de datos fundamental en Apache Spark.

Necesitamos importar RDD del Pyspark.módulo RDD.

En Pyspark para crear un RDD, podemos usar el método Parallelize ().

Sintaxis:

Spark_app.sparkcontext.Paralelizar (datos)

Donde los datos pueden ser datos unidimensionales (datos lineales) o bidimensionales (datos de columna de fila).

En este artículo de Pyspark, discutiremos sobre las funciones de TakeOrdered () y Takesample ().

Pyspark TakeOrdered ()

La función PySpark TakeOrdered () se usa para devolver un nuevo RDD en un pedido de RDD existente.

Se necesitan dos parámetros.

Sintaxis:

TakeRorded (n, clave)

Parámetros:

  1. n se usa para devolver el número de elementos en un pedido en el nuevo RDD.
  2. La clave es un parámetro opcional que toma una función anónima para obtener los elementos en orden ascendente o orden descendente.

Para orden ascendente, la función puede ser - clave = elemento lambda: elemento

Para orden descendente, la función puede ser - clave = elemento lambda: -element

Se necesita menos (-) signo para tomar elementos en orden descendente.

Si no se especifica, los elementos en el nuevo RDD estarán en orden ascendente.

Ejemplo 1:

En este ejemplo, estamos creando un RDD con 20 elementos y aplicando la función TakeOrder () para obtener los primeros 10 elementos. Primeros 12 elementos por separado en orden ascendente usando el parámetro clave.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
# Importar RDD de Pyspark.RDD
de Pyspark.RDD import rdd
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# crear datos de alumnos con 20 elementos
student_marks = spark_app.sparkcontext.Paralelice ([[89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Datos de desplazamiento en RDD
Imprimir ("Datos reales en RDD:", Student_Marks.mapa (elemento lambda: elemento).recolectar())
#Obtenga 10 elementos de RDD en orden ascendente
Imprimir ("10 elementos de RDD en un orden ascendente con clave como parámetro:", Student_Marks.TakeOrdered (10, Key = Lambda Element: Element))
#Obtenga 12 elementos de RDD en un orden ascendente
Imprimir ("12 elementos de RDD en un orden ascendente con clave como parámetro:", Student_Marks.TakeOrdered (12, Key = Lambda Element: Element))

Producción:

Datos reales en RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementos de RDD en un orden ascendente con clave como parámetro: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 elementos de RDD en un orden ascendente con clave como parámetro: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]

Puede ver que los nuevos RDD se devuelven con elementos en orden ascendente.

Ejemplo 2:

En este ejemplo, estamos creando un RDD con 20 elementos y aplicando la función TakeOrder () para obtener los primeros 10 elementos. Los primeros 12 elementos se separan en orden ascendente sin parámetro clave.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
# Importar RDD de Pyspark.RDD
de Pyspark.RDD import rdd
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# crear datos de alumnos con 20 elementos
student_marks = spark_app.sparkcontext.Paralelice ([[89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Datos de desplazamiento en RDD
Imprimir ("Datos reales en RDD:", Student_Marks.mapa (elemento lambda: elemento).recolectar())
#Obtenga 10 elementos de RDD en orden ascendente
Imprimir ("10 elementos de RDD en un orden ascendente:", Student_Marks.TakeRorded (10))
#Obtenga 12 elementos de RDD en un orden ascendente
Imprimir ("12 elementos de RDD en un orden ascendente:", Student_Marks.TakeRorded (12))

Producción:

Datos reales en RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementos de RDD en un orden ascendente: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54]
12 elementos de RDD en un orden ascendente: [21, 22, 23, 34, 34, 34, 34, 43, 45, 54, 56, 56]

Puede ver que los nuevos RDD se devuelven con elementos en orden ascendente aún sin parámetro clave.

Ejemplo 3:

En este ejemplo, estamos creando un RDD con 20 elementos y aplicando la función TakeOrder () para obtener el primer elemento 10. Los primeros 12 elementos están separados en orden descendente.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
# Importar RDD de Pyspark.RDD
de Pyspark.RDD import rdd
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# crear datos de alumnos con 20 elementos
student_marks = spark_app.sparkcontext.Paralelice ([[89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Datos de desplazamiento en RDD
Imprimir ("Datos reales en RDD:", Student_Marks.mapa (elemento lambda: elemento).recolectar())
#Obtenga 10 elementos de RDD en orden descendente
Imprimir ("10 elementos de RDD en un orden descendente:", Student_Marks.TakeOrdered (10, Key = Lambda Element: -Element))
#Obtenga 12 elementos de RDD en orden descendente
Imprimir ("12 elementos de RDD en un orden descendente:", Student_Marks.TakeOrdered (12, Key = Lambda Element: -Element))

Producción:

Datos reales en RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementos de RDD en una orden descendente: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56]
12 elementos de RDD en una orden descendente: [100, 90, 89, 89, 78, 78, 76, 56, 56, 56, 54, 45]

Puede ver que los nuevos RDD se devuelven con elementos en orden descendente. Para este caso, debe especificar el parámetro clave.

Pyspark TakeAmampa ()

La función Pyspark TakeAmampa () se usa para devolver un nuevo RDD con valores aleatorios de un RDD existente. Se necesitan dos parámetros.

Sintaxis:

TAKEAMPLE (reemplazar, n)

Parámetros:

  1. reemplazar toma valores booleanos. Si se establece en True, entonces los valores aleatorios que están volviendo al nuevo RDD son únicos (no se repiten/reemplazan nuevamente). Si se establece en FALSO, entonces los valores aleatorios que están volviendo al nuevo RDD se pueden repetir (se pueden repetir/reemplazarse nuevamente)
  2. n se usa para devolver el número de elementos aleatorios en un nuevo RDD.

Ejemplo 1:

En este ejemplo, crearemos un RDD con 20 elementos y devolveremos 10 elementos. 12 elementos están separados sin reemplazo.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
# Importar RDD de Pyspark.RDD
de Pyspark.RDD import rdd
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# crear datos de alumnos con 20 elementos
student_marks = spark_app.sparkcontext.Paralelice ([[89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Datos de desplazamiento en RDD
Imprimir ("Datos reales en RDD:", Student_Marks.mapa (elemento lambda: elemento).recolectar())
#Obtenga 10 elementos del RDD sin reemplazo
Imprimir ("10 elementos del RDD sin reemplazo:", Student_Marks.TAKEPHAME (FALSO, 10))
#Obtenga 12 elementos del RDD sin reemplazo
Imprimir ("12 elementos del RDD sin reemplazo:", Student_Marks.TAKEAMPLE (FALSO, 12))

Producción:

Datos reales en RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementos del RDD sin reemplazo: [89, 23, 78, 56, 43, 100, 89, 78, 76, 21]
12 elementos del RDD sin reemplazo: [89, 23, 43, 54, 34, 45, 78, 56, 22, 56, 34, 34]

Podemos observar que los valores aleatorios no se reemplazan en el nuevo RDD.

Ejemplo 2:

En este ejemplo, crearemos un RDD con 20 elementos y devolveremos 10 elementos. 12 elementos están separados con reemplazo.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
# Importar RDD de Pyspark.RDD
de Pyspark.RDD import rdd
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# crear datos de alumnos con 20 elementos
student_marks = spark_app.sparkcontext.Paralelice ([[89,76,78,89,90,100,34,56,54,22,45,43,23,56,78,21,34,34,56,34])
#Datos de desplazamiento en RDD
Imprimir ("Datos reales en RDD:", Student_Marks.mapa (elemento lambda: elemento).recolectar())
#get 10 elementos del RDD con reemplazo
Imprimir ("10 elementos del RDD con reemplazo:", Student_Marks.Take spampa (verdadero, 10))
#Obtenga 12 elementos del RDD con reemplazo
Imprimir ("12 elementos del RDD con reemplazo:", Student_Marks.Take spampa (verdadero, 12))

Producción:

Datos reales en RDD: [89, 76, 78, 89, 90, 100, 34, 56, 54, 22, 45, 43, 23, 56, 78, 21, 34, 34, 56, 34]
10 elementos del RDD con reemplazo: [90, 34, 78, 34, 34, 89, 23, 22, 76, 21]
12 elementos del RDD con reemplazo: [43, 78, 78, 78, 78, 89, 21, 100, 89, 78, 34, 22]

Podemos observar que los valores aleatorios se reemplazan en ambos RDD, ya que establecemos el parámetro en verdadero.

Conclusión

En este tutorial de Pyspark, vimos cómo usar funciones TakeOrdered () & Takesample () en RDD. Ambos se utilizan para devolver el nuevo RDD del RDD existente.

TakeOrdered () Devuelve el nuevo RDD de un RDD existente con elementos en una orden de clasificación. Es posible obtener los datos ordenados en orden descendente utilizando el parámetro clave a través de la función Lambda.

Takesample () devuelve el nuevo RDD de un RDD existente con algunos elementos al azar. Es posible repetir los valores generados aleatoriamente en el nuevo RDD nuevamente usando el parámetro Reemplazar.