Pyspark - Distinto

Pyspark - Distinto
En Python, Pyspark es un módulo Spark utilizado para proporcionar un tipo similar de procesamiento como Spark usando DataFrame.

distinto () en pyspark elimina las filas/datos duplicados y devuelve las filas únicas del marco de datos.

Al usar distinto () podemos eliminar las filas duplicadas en el marco de datos de Pyspark.

Podemos soltar las columnas de DataFrame de dos maneras.

Antes de eso, tenemos que crear Pyspark DataFrame para la demostración.

Ejemplo:

Crearemos un marco de datos con 8 filas y 6 columnas y lo mostraremos utilizando el método show ().

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa la función de conteo
de Pyspark.sql.Cuento de importación de funciones
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiantes con 8 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Disprazando el marco de datos
df.espectáculo()

Producción:

En este marco de datos, los datos duplicados son Rollno - 2, 3 y 4 . Son datos duplicados porque ocurrieron dos veces. Por lo tanto, tenemos que eliminar este duplicado y devolver las filas restantes usando la función distinta (). Este método devolverá los nombres de la columna junto con su tipo de datos.

Escenario -1: Obtenga datos distintos de todo el marco de datos

Obtendremos los datos distintos de todo el marco de datos utilizando la función distintiva ()

Sintaxis:

df.distinto()

Donde DF es la entrada Pyspark DataFrame

Finalmente, tenemos que usar el método Collect () para devolver todas las filas del marco de datos.

Ejemplo :

En este ejemplo, obtendremos los datos distintos de todo el marco de datos.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa la función de conteo
de Pyspark.sql.Cuento de importación de funciones
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiantes con 8 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Entectora las distintas filas
Imprimir (DF.distinto().recolectar())

Producción:

[Fila (dirección = 'Guntur', edad = 23, altura = 5.79, nombre = 'sravan', rollno = '001', peso = 67),
Fila (dirección = 'hyd', edad = 9, altura = 3.69, nombre = 'rohith', rollno = '004', peso = 28),
Fila (dirección = 'patna', edad = 7, altura = 2.79, nombre = 'Gnanesh Chowdary', rollno = '003', peso = 17),
Fila (dirección = 'hyd', edad = 16, altura = 3.79, nombre = 'ojaswi', rollno = '002', peso = 34),
Fila (dirección = 'hyd', edad = 37, altura = 5.59, nombre = 'sridevi', rollNo = '005', peso = 54)]

En el ejemplo anterior, veremos que se eliminan las filas duplicadas.

Escenario - 2: Obtener datos distintos de columnas particulares en el marco de datos.

Usaremos el método select () para obtener las filas distintas de las columnas seleccionadas, el método select () se usa para seleccionar columnas, y después de eso, tenemos que usar la función distintiva () para devolver valores únicos de la columna seleccionada , y finalmente, tenemos que usar el método Collect () para que las filas devuelvan por la función distinta ().

Sintaxis:

df.Seleccionar ("column_name").distinto()

Dónde,

  1. DF es la entrada Pyspark DataFrame
  2. column_name es la columna.

Ejemplo :

En este ejemplo, obtendremos por separado las distintas filas de la columna Rollno, Nombre y Dirección.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa la función de conteo
de Pyspark.sql.Cuento de importación de funciones
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiantes con 8 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Engange las filas distintas de la columna Rollno
Imprimir (DF.Seleccionar ("Rollno").distinto().recolectar())
#Engange las distintas filas de la columna de nombre
Imprimir (DF.Seleccione ("Nombre").distinto().recolectar())
#Obtenga las distintas filas de la columna de dirección
Imprimir (DF.Seleccione ("Dirección").distinto().recolectar())

Producción:

[Fila (rollNo = '003'), fila (rollNo = '001'), fila (rollNo = '004'), fila (rollNo = '002'), fila (rollNo = '005')]]]
[Fila (name = 'rohith'), fila (name = 'gnanesh chowDary'), fila (name = 'sravan'), fila (name = 'ojaswi'), fila (name = 'sridevi')]]]
[Fila (dirección = 'patna'), fila (dirección = 'hyd'), fila (dirección = 'guntur')]]

En el ejemplo anterior, devolvimos las filas distintas de la columna Rollno, Nombre y Dirección

Escenario - 3: Obtenga datos distintos de múltiples columnas en DataFrame.

Usaremos el método select () para obtener las filas distintas de las múltiples columnas seleccionadas a la vez. columnas, el método select () se usa para seleccionar columnas, y después de eso, tenemos que usar la función distinta () para devolver valores únicos de la columna seleccionada. Finalmente, debemos usar el método Collect () para que las filas devuelvan por la función distinta ().

Sintaxis:

df.SELECT ("column_name", "column_name", ..., "column_name").distinto()

Dónde,

  1. DF es la entrada Pyspark DataFrame
  2. column_name es la columna.

Ejemplo :

En este ejemplo, obtendremos las distintas filas de la columna Rollno, Nombre y Dirección a la vez.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa la función de conteo
de Pyspark.sql.Cuento de importación de funciones
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiantes con 8 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Obtenga las distintas filas de las columnas RollNo, Nombre y Dirección
Imprimir (DF.Seleccione ("Rollno", "Nombre", "Dirección").distinto().recolectar())

Producción:

[Fila (rollNo = '002', name = 'ojaswi', dirección = 'hyd'), fila (rollNo = '004', name = 'rohith', dirección = 'hyd'), fila (rollNo = '001' , name = 'sravan', dirección = 'guntur'), ​​fila (rollNo = '003', name = 'gnanesh chowDary', dirección = 'patna'), fila (rollNo = '005', name = 'sridevi', dirección = 'hyd')]

En el ejemplo anterior, devolvimos las filas distintas de la columna Rollno, Nombre y Dirección

Si queremos obtener el número total de filas distintas, tenemos que usar la función Count () después de la función distinta ().

Sintaxis:

df.distinto().contar()

Ejemplo:

En este ejemplo, estamos devolviendo el recuento de filas únicas.

#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#Importa la función de conteo
de Pyspark.sql.Cuento de importación de funciones
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Crear datos de estudiantes con 8 filas y 6 atributos
estudiantes = ['Rollno': '001', 'Nombre': 'Sravan', 'Age': 23, 'Altura': 5.79, 'Peso': 67, 'Dirección': 'Guntur',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '002', 'Nombre': 'ojaswi', 'edad': 16, 'altura': 3.79, 'Peso': 34, 'Dirección': 'Hyd',
'Rollno': '003', 'Nombre': 'Gnanesh Chowdary', 'Age': 7, 'Altura': 2.79, 'Peso': 17, 'Dirección': 'Patna',
'rollno': '004', 'nombre': 'rohith', 'edad': 9, 'altura': 3.69, 'Peso': 28, 'Dirección': 'Hyd',
'Rollno': '005', 'Nombre': 'Sridevi', 'Age': 37, 'Altura': 5.59, 'Peso': 54, 'Dirección': 'Hyd']
# Crea el DataFrame
DF = Spark_App.Createdataframe (estudiantes)
#Engite el recuento distintivo
Imprimir (DF.distinto().contar())

Producción:

5

Conclusión:

Discutimos cómo obtener datos distintos de todo el marco de datos y columnas individuales/múltiples. Para obtener el recuento de valores únicos, usamos el método Count () y distintivo ().