У меня есть датафрейм, как показано ниже:
+--------+----------------+----+----------+
|role_num| email_address|role|counters |
+--------+----------------+----+----------+
| 110| EMAIL2@TEST.COM|null| 2|
| 110| EMAIL2@TEST.COM| P | 2|
| 114|EMAIL10@TEST.COM| A | 2|
| 114|EMAIL10@TEST.COM|null| 2|
+--------+----------------+----+----------+
Из этого фрейма данных мой вывод должен выглядеть примерно так:
+--------+----------------+----+----------+
|role_num| email_address|role|counters |
+--------+----------------+----+----------+
| 110| EMAIL2@TEST.COM| P | 2|
| 114|EMAIL10@TEST.COM| A | 2|
+--------+----------------+----+----------+
Условие: всякий раз, когда количество дубликатов равно 2, тогдаЯ должен выбрать роль «P», но если этой роли нет, мне нужно выбрать «A».
Я пробовал, как показано ниже.Но это не похоже на работу.
import sc.implicits._
val targetDF = Seq(
("110", "EMAIL2@TEST.COM", "", "2"),
("110", "EMAIL2@TEST.COM", "PAH", "2"),
("114", "EMAIL10@TEST.COM", "AAH", "2"),
("114", "EMAIL10@TEST.COM", "", "2")
)
.toDF(
"role_num",
"email_address",
"role",
"counters")
targetDF.where(
(col("counters") > 1 )
|| ?)
Вы можете помочь?