首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多工况火花数据采集

多工况火花数据采集
EN

Stack Overflow用户
提问于 2016-12-02 08:44:07
回答 1查看 209关注 0票数 0
代码语言:javascript
复制
var rtn = df.select(
                col( colmap.get("AAAAA")) as "AAAAA",
                lit( colmap.get("BBBBB")) as "BBBBB",
                col( colmap.get("CCCCC")) as "CCCCC",
                col( colmap.get("DDDDD")) as "DDDDD"
            )
            .where( col("AAAAA").isNotNull && col("BBBBB").isNotNull && col("CCCCC").isNotNull && col("DDDDD").isNotNull)

            rtn.show()

返回dataframe仍然有一些空值。我做错了吗?

电流输出

代码语言:javascript
复制
+--------+-----------+-----------
|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|

我的预期产出

代码语言:javascript
复制
+--------+-----------+-----------
|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|

EEEEE列中仍有一些空值。DataFrame,其中的条件似乎不能正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-02 12:37:19

看起来您的数据包含空白字符串,而不是NULLs。若要筛选空字符串,可以使用rlike

代码语言:javascript
复制
import org.apache.spark.sql.functions.not

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

或者trimlength

代码语言:javascript
复制
import org.apache.spark.sql.functions.{trim, length}

length(trim($"foo")) =!= 0

另外,您可以使用DataFrameNaFunctions.drop与列序列一起删除包含NULL的行。

代码语言:javascript
复制
df.na.drop(Seq("foo", "bar"))

代码语言:javascript
复制
df.na.drop()

如果您想要删除所有包含行的NULL

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40927981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档