数据框,检查列是否为空格

时间:2017-03-03 16:38:00

标签: scala

我有一个数据框“df1”,如下所示。

+----------+----------+ 
| col1     |      col2| 
+----------+----------+ 
|  11111111|123456789 | 
|  11111111|          | 
|  11111111|123456789 | 
|  11111111|          | 
+-----+----------+----+  

我想通过检查col2是否为空格来过滤datafarme。

我在scala spark-shell中的命令是 val df3 = crpsdfs.filter($“GASP_NATID01_CD”!=“”)

但结果数据框的行也有空格

预期结果是:     + ---------- + ---------- +     | col1 | COL2 |     + ---------- + ---------- +     | 11111111 | 123456789 |
    | 11111111 | 123456789 |
    + ----- + ---------- + ---- +

你能帮忙吗?

1 个答案:

答案 0 :(得分:0)

对于您的示例,请尝试

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

通常,过滤掉空格可能没有简单的条件。你可以尝试

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