Spark - 具有多个条件的数据帧

时间:2016-12-02 08:44:08

标签: apache-spark dataframe

+--------+-----------+-----------
|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。

1 个答案:

答案 0 :(得分:1)

您的数据似乎包含空字符串NULLs。要过滤空白字符串,您可以使用rlike

import org.apache.spark.sql.functions.not

not($"foo".rlike("^\\s*$")))  // or !$"foo".rlike("^\\s*$")

trimlength

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行。

相关问题