Saltar al contenido

Filtrar la columna de marco de datos de Pyspark con valor Ninguno

Solución:

Puedes usar Column.isNull / Column.isNotNull:

df.where(col("dt_mvmt").isNull())

df.where(col("dt_mvmt").isNotNull())

Si quieres simplemente soltar NULL valores que puedes usar na.drop con subset argumento:

df.na.drop(subset=["dt_mvmt"])

Comparaciones basadas en la igualdad con NULL no funcionará porque en SQL NULL no está definido, por lo que cualquier intento de compararlo con otro valor devuelve NULL:

sqlContext.sql("SELECT NULL = NULL").show()
## +-------------+
## |(NULL = NULL)|
## +-------------+
## |         null|
## +-------------+


sqlContext.sql("SELECT NULL != NULL").show()
## +-------------------+
## |(NOT (NULL = NULL))|
## +-------------------+
## |               null|
## +-------------------+

El único método válido para comparar el valor con NULL es IS / IS NOT que son equivalentes a los isNull / isNotNull llamadas a métodos.

Intente usar la función isNotNull.

df.filter(df.dt_mvmt.isNotNull()).count()

Obtener entradas cuyos valores en el dt_mvmt la columna no es nula tenemos

df.filter("dt_mvmt is not NULL")

y para las entradas que son nulas tenemos

df.filter("dt_mvmt is NULL")
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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