在 spark scala 的数据框列中过滤 NULL 值 | 珊瑚贝

Filter NULL value in dataframe column of spark scala


我有一个数据框(df),其中包含以下内容:

1
2
3
4
5
6
+———+——————–+
|  col1|        col2           |
+———+——————–+
|colvalue1|                NULL|  
|colvalue2|col2value…        |
+————+—————–+

我正在尝试根据 col2 过滤行,如下所示

1
df.filter(($“col2”.isNotNULL) || ($“col2” !==“NULL”)  || ($“col2” !==“null”)  || ($“col2”.trim !==“NULL”))

但是有 NULL 的行没有被过滤。此列显示 nullable=true.

谁能告诉我我做错了什么?我正在使用 Spark 1.6。


你的 !== 符号是错误的,应该是 =!=,你不能做 $”col2″.trim 并且因为你使用了与 || 的否定,所以其中一个否定总是正确的。在您的示例中, ($”col2″.isNotNULL) 始终为真,因此每一行都被过滤。所以由 || 组合的个别否定应该小心。

所以正确的形式是

1
df.filter(!($“col2”.isNull || ($“col2” ===“NULL”) || ($“col2” ===“null”)))

如果你使用内置函数 isnull 和 trim

甚至更好

1
df.filter(!(isnull($“col2”) || (trim($“col2”) ===“NULL”) || (trim($“col2”) ===“null”)))
  • 这是 (trim($”col2″) === “null”) 必要的吗?火花催化剂应该不区分大小写吗?


来源:https://www.codenong.com/50478512/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9865.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?