Este artículo presentará y demostrará Pyspark
array_contains () método. El método se utiliza para verificar si existen valores específicos dentro de una matriz en Pyspark.
En este artículo, tenemos que crear un marco de datos con una matriz. Creemos un marco de datos con 2 columnas. La primera columna es estudiante_categoría que se refiere al campo entero para almacenar identificaciones de estudiante. La segunda columna - Student_full_Name se usa para almacenar valores de cadena en una matriz creada usando ArrayType ().
#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#y importar tipos de estructura y otros tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype, arraytype
de Pyspark.sql.Funciones importar array_contains
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Considere una matriz con 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#Define el structtype y structfields
#para los datos anteriores
schema = structType ([structfield ("student_category", integertype ()), structfield ("student_full_name", arrayType (stringType ())]))
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.creatataframe (my_array_data, esquema = esquema)
df.espectáculo()
Producción:
Ahora, veremos lo que haz la array_contains ().
array_contains () se usa para verificar si la matriz tiene el elemento especificado. En caso afirmativo, devolverá verdadero, de lo contrario Falso.
Esto es posible verificar utilizando el método select (). Dentro de este método, podemos usar la función Array_Contains () y devolver el resultado.
Sintaxis:
marco de datos.SELECT (Array_Contains (Array_Column, Value '))
Parámetros:
- array_column contiene valores de tipo de matriz
- El valor se usa para verificar si existe en la array_column o no.
Devolver:
Devolverá verdadero/falso en todas las filas en una columna de matriz.
Ejemplo 1:
En este ejemplo, verificaremos si la columna student_full_name tiene 'l' en todas las filas usando la función array_contains ().
#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#y importar tipos de estructura y otros tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype, arraytype
de Pyspark.sql.Funciones importar array_contains
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Considere una matriz con 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#Define el structtype y structfields
#para los datos anteriores
schema = structType ([structfield ("student_category", integertype ()), structfield ("student_full_name", arrayType (stringType ())]))
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.creatataframe (my_array_data, esquema = esquema)
# verifique la función student_full_name - l en todas las filas usando la función array_contains ().
df.SELECT ("Student_full_Name", Array_Contains ('Student_full_Name', 'l'))).espectáculo()
Producción:
Aquí, seleccionamos columnas Student_Full_Name. La primera columna es la columna real y la segunda columna es el resultado devuelto por la función Array_Contains ().
Solo la segunda fila tiene valor 'l', por lo que devuelve verdadero, y el resto resulta a falso.
Ejemplo 2:
En este ejemplo, verificaremos si la columna student_full_name tiene 'k' en todas las filas usando la función array_contains ().
#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#y importar tipos de estructura y otros tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype, arraytype
de Pyspark.sql.Funciones importar array_contains
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Considere una matriz con 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#Define el structtype y structfields
#para los datos anteriores
schema = structType ([structfield ("student_category", integertype ()), structfield ("student_full_name", arrayType (stringType ())]))
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.creatataframe (my_array_data, esquema = esquema)
# verifique la función student_full_name - k en todas las filas usando la función array_contains ().
df.SELECT ("Student_full_Name", Array_Contains ('Student_full_Name', 'K'))).espectáculo()
Producción:
Aquí, seleccionamos columnas Student_Full_Name. La primera columna es la columna real y la segunda columna es el resultado devuelto por la función Array_Contains ().
Solo la tercera y cuarta fila tiene el valor 'k', por lo que devuelve verdadero, y el resto resulta a falso.
Ahora, si desea devolver la fila completa en el cuadro de datos de datos, según el valor especificado en el método array_contains (), puede usar dónde o la cláusula filtre () en lugar de la cláusula de selección.
Ejemplo 1: Usando dónde ()
En este ejemplo, devolveremos la fila donde la columna Student_Full_Name tiene 'K' usando la función Array_Contains ().
#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#y importar tipos de estructura y otros tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype, arraytype
de Pyspark.sql.Funciones importar array_contains
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Considere una matriz con 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#Define el structtype y structfields
#para los datos anteriores
schema = structType ([structfield ("student_category", integertype ()), structfield ("student_full_name", arrayType (stringType ())]))
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.creatataframe (my_array_data, esquema = esquema)
# return the student_full_name - k usando la función array_contains ().
df.donde (array_contains ('student_full_name', 'k')).espectáculo()
Producción:
Puede ver que las filas fueron devueltas donde el student_full_name tiene k valor.
Ejemplo 2: usando filtro ()
En este ejemplo, devolveremos la fila donde la columna Student_Full_Name tiene 'k' usando la función array_contains () con cláusula de filtro.
#Importa el módulo Pyspark
importar pyspark
#Import Sparksession para crear una sesión
de Pyspark.SQL Import Sparksession
#y importar tipos de estructura y otros tipos de datos
de Pyspark.sql.tipos import structtType, structfield, stringType, integertype, floattype, arraytype
de Pyspark.sql.Funciones importar array_contains
#cree una aplicación llamada Linuxhint
Spark_app = Sparksession.constructor.AppName ('Linuxhint').getorcreate ()
# Considere una matriz con 5 elementos
my_array_data = [(1, ['a']), (2, ['b', 'l', 'b']), (3, ['k', 'a', 'k']), (( 4, ['k']), (3, ['b', 'p'])]
#Define el structtype y structfields
#para los datos anteriores
schema = structType ([structfield ("student_category", integertype ()), structfield ("student_full_name", arrayType (stringType ())]))
#Cree el DataFrame y agregue esquema a DataFrame
DF = Spark_App.creatataframe (my_array_data, esquema = esquema)
# return the student_full_name - k usando la función array_contains ().
df.Filtro (array_contains ('student_full_name', 'k')).espectáculo()
Producción:
Puede ver que las filas fueron devueltas donde el student_full_name tiene k valor.
Conclusión
Llegamos a saber que Array_Contains () se usa para verificar si el valor está presente en una matriz de columnas. Esto se puede lograr utilizando la cláusula de selección.
Si necesita devolver filas donde la matriz contiene valores, entonces, en lugar de seleccionar, puede usar dónde o filtrar cláusula.