我有一个数据框“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 |
+ ----- + ---------- + ---- +
答案 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)