This is my dataframe and filters:
df = spark.range(3)
filter1 = (F.col('id') == 1)
filter2 = (F.col('id') == 2)
flag = False
I want to make filter2 dependent on flag. When flag = True, I want filter2 to take effect and not to take effect when flag = False.
I know I can do
filt = filter1
if flag:
filt = filt | filter2
df = df.filter(filt)
I wonder if this would be possible in one line, for example utilizing conditional expressions/ ternary operators, etc.
This did not work:
df = df.filter(filter1 | filter2 if flag else False)
Desired result when flag = False:
+---+
| id|
+---+
| 1|
+---+
Desired result when flag = True:
+---+
| id|
+---+
| 1|
| 2|
+---+