Пометить данные, когда значение из одного столбца находится в другом столбце - PullRequest
1 голос
/ 17 апреля 2020

Я пытаюсь создать флаг в моем наборе данных на основе 2 условий, первое простое. Делает CheckingCol = CheckingCol2.

Второй более сложный. У меня есть столбец с именем TranID и столбец с именем RevID.

Для строки nay, если RevID находится в TranID, а CheckingCol = CheckingCol2, тогда флаг должен возвращать «Да». В противном случае флаг должен вернуть «Нет».

Мои данные выглядят так:

TranID   RevID   CheckingCol  CheckingCol2
1        2       ABC          ABC
2        1       ABC          ABC
3        6       ABCDE        ABCDE
4        3       ABCDE        ABC
5        7       ABCDE        ABC

Ожидаемый результат будет:

TranID   RevID   CheckingCol  CheckingCol2  Flag
1        2       ABC          ABC           Yes
2        1       ABC          ABC           Yes
3        6       ABCDE        ABCDE         No
4        3       ABCDE        ABC           No
5        7       ABCDE        ABC           No

Я пытался использовать:

df.withColumn("TotalMatch", when((col("RevID").contains(col("TranID"))) & (col("CheckingColumn") == col("CheckingColumn2")), "Yes").otherwise("No"))

Но это не сработало, и я не смог найти в Интернете ничего о том, как это сделать.

Любая помощь будет отличной!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...