df5.withColumn("new_column", when(col("code") == "a" | col("code") == "d", "A") .when(col("code") == "b" & col("amt") == "4", "B") .otherwise("A1")).show()