2017-03-03 88 views
0

我有一个数据帧“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 |
+ ----- + ---------- + ---- +

可否请您帮忙。

回答

0

对于你的榜样,尽量

df1.filter("cast(col2 as int) > 0") 

一般情况下,有可能不是一个简单的条件来过滤掉空格。您可以试试

spark.sqlContext.createDataFrame( 
    df1.rdd.filter{case Row(col1, col2) => (col2.asInstanceOf[String].trim != "")}, 
    df1.schema)