数据帧,检查列是否为空
问题描述:
我有一个数据帧“df1”,如下所示。数据帧,检查列是否为空
+----------+----------+
| col1 | col2|
+----------+----------+
| 11111111|123456789 |
| 11111111| |
| 11111111|123456789 |
| 11111111| |
+-----+----------+----+
我想通过检查col2是否为空来过滤datafarme。
我在斯卡拉火花shell命令是 VAL DF3 = crpsdfs.filter($ “GASP_NATID01_CD”= “”!)
但是得到的数据帧有空格行太
期望的结果是: + ---------- + ---------- + | col1 | COL2 | + ---------- + ---------- + | 11111111 | 123456789 |
| 11111111 | 123456789 |
+ ----- + ---------- + ---- +
可否请您帮忙。
答
对于你的榜样,尽量
df1.filter("cast(col2 as int) > 0")
一般情况下,有可能不是一个简单的条件来过滤掉空格。您可以试试
spark.sqlContext.createDataFrame(
df1.rdd.filter{case Row(col1, col2) => (col2.asInstanceOf[String].trim != "")},
df1.schema)