+--------+-----------+-----------
|AAAAA|BBBBB|CCCCC|DDDDD|EEEEE|
+--------+-----------+-----------
|A11111|B12345|C1111|D11111| |
|A22222|B12345|C2222|D22222| |
|A33333|B12345|C3333|D33333|E11111|
|A44444|B12345|C4444|D44444| |
|A55555|B12345|C5555|D55555|E11111|
返回数据帧仍然有一些空值。我做错了吗?
当前输出
+--------+-----------+-----------
|AAAAA|BBBBB|CCCCC|DDDDD|EEEEE|
+--------+-----------+-----------
|A11111|B12345|C1111|D11111|E11111|
|A22222|B12345|C2222|D22222|E11111|
|A33333|B12345|C3333|D33333|E11111|
|A44444|B12345|C4444|D44444|E11111|
|A55555|B12345|C5555|D55555|E11111|
我的预期输出
update-join
EEEEE列上仍有一些空值。条件似乎无法正常工作的DataFrame。
答案 0 :(得分:1)
您的数据似乎包含空字符串NULLs
。要过滤空白字符串,您可以使用rlike
:
import org.apache.spark.sql.functions.not
not($"foo".rlike("^\\s*$"))) // or !$"foo".rlike("^\\s*$")
或trim
和length
:
import org.apache.spark.sql.functions.{trim, length}
length(trim($"foo")) =!= 0
作为旁注,您可以使用DataFrameNaFunctions.drop
一系列列来删除包含NULL
的行:
df.na.drop(Seq("foo", "bar"))
或
df.na.drop()
如果要删除包含所有NULL
行。