Вы можете применить фильтр непосредственно к логическому значению. Почему вы применяете условие для этого как col("col3")===true
? Ваше значение столбца имеет логический тип, и когда мы применяем условие в фильтре, оно возвращает значение в логическом виде либо true
, либо false
. Если ваш столбец логический, то почему вы снова пытаетесь сделать то же самое?
scala> val someDf = Seq((1, true, false), (2, true, true)).toDF("col1", "col2", "col3")
someDf: org.apache.spark.sql.DataFrame = [col1: int, col2: boolean ... 1 more field]
У нас есть DF со значением:
scala> someDf.show
+----+----+-----+
|col1|col2| col3|
+----+----+-----+
| 1|true|false|
| 2|true| true|
+----+----+-----+
Теперь примените фильтр:
scala> someDf.filter(col("col3")).show
+----+----+----+
|col1|col2|col3|
+----+----+----+
| 2|true|true|
+----+----+----+
Спасибо.