I have dataframe: df1
+------+--------+--------+--------+ | Name | value1 | value2 | value3 | +------+--------+--------+--------+ | A | 100 | null | 200 | | B | 10000 | 300 | 10 | | c | null | 10 | 100 | +------+--------+--------+--------+ second dataframe: df2:
+------+------+ | Col1 | col2 | +------+------+ | X | 1000 | | Y | 2002 | | Z | 3000 | +------+------+ I want to read the values from table1 like value1,value2 and value3
Apply condition to table2 with new columns:
cond1: when name= A and col2>value1, flag it to Y or N
cond2: when name= B and col2>value2 then Y or N
cond3: when name =c and col2>value1 and col2> value3, then Y or N
source code:
df2.withColumn("cond1",when($"col2")>value1,lit("Y)).otherwise(lit("N")) df2.withColumn("cond2",when($"col2")>value2,lit("Y)).otherwise(lit("N")) df2.withColumn("cond3",when($"col2")>value1 && when($"col2")>value3,lit("Y")).otherwise(lit("N")) output:
+------+------+-------+-------+-------+ | Col1 | col2 | cond1 | cond2 | cond3 | +------+------+-------+-------+-------+ | X | 1000 | Y | Y | y | | Y | 2002 | N | Y | Y | | Z | 3000 | Y | Y | Y | +------+------+-------+-------+-------+