Предположим, у вас есть следующие List
столбцов, которые вы хотите отфильтровать для значения больше 3.
val lst = List("T1_diff", "T2_diff")
Затем вы можете создать String
, используя эти имена столбцов, а затем передать эту String
в where
функцию.
val condition = lst.map(c => s"$c>3").mkString(" AND ")
df.where(condition).show(false)
Для приведенного выше кадра данных будет выводиться только вторая строка.
+----------+----+----+-------+-------+
|Week |Dim1|Dim2|T1_diff|T2_diff|
+----------+----+----+-------+-------+
|2016-04-30|14 |FR |90 |4 |
+----------+----+----+-------+-------+
Если у вас есть другой столбец, скажем T3_diff
, вы можете добавить его к List
, и он будет добавлен к условию фильтра.