Comment mettre à jour la colonne en fonction d'une condition (une valeur dans un groupe)?

J'ai le texte suivant df:

+---+----+-----+
|sno|dept|color|
+---+----+-----+
|  1|  fn|  red|
|  2|  fn| blue|
|  3|  fn|green|
+---+----+-----+

Si la couleur l'une des valeurs de la colonne est red, puis j'ai toutes les valeurs de la colonne de couleur doit être mis à jour pour être red, comme ci-dessous:

+---+----+-----+
|sno|dept|color|
+---+----+-----+
|  1|  fn|  red|
|  2|  fn|  red|
|  3|  fn|  red|
+---+----+-----+

Je ne pouvais pas le comprendre. S'il vous plaît aider; j'ai essayé le code suivant:

val gp=jdbcDF.filter($"dept".contains("fn"))
     //.withColumn("newone",when($"dept"==="fn","RED").otherwise("NULL"))
    gp.show()
gp.map(
  row=>{
    val row1=row.getAs[String](1)
    var row2=row.getAs[String](2)
    val make=if(row1 =="fn") row2="red"
    Row(row(0),row(1),make)
  }
).collect().foreach(println)