Использование not rlike в предложении when в pyspark - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь проверить поле электронной почты в кадре данных PySpark.У меня это работает в значительной степени, но единственное, что я не могу понять, это то, что, когда я пытаюсь отрицать его с целью недействительного письма, оно не всегда работает.

Есть ли способ обойти это?

Name    Email              EMAIL_VALIDITY_CLASSIFICATION
John      .                   INVALID
Johny  johny007@yahoo.com     VALID - VERIFIED
Sam     xyz@hotmail.com       INVALID

Это регулярное выражение, которое я использую:

EMAIL_REGEX = r'[^@\s]+@[^@\s]+\.[a-zA-Z0-9]+$'

Это мой код:

df_cleaned = df.withColumn("EMAIL_VALIDITY_CLASSIFICATION", \
                        when(upper(col("TYPE")) == "VALID","VALID - VERIFIED") \
                        .when((upper(col("TYPE")) ==  "DUPLICATES") | (df.EMAIL.rlike(EMAIL_REGEX)),"VALID - UNVERIFIED") \
                        .when(~ df.EMAIL.rlike(EMAIL_REGEX), "INVALID") \
                        .when(upper(col("TYPE")) == "NOSUGGESTION", "SPAM") \
                        .when((upper(col("EMAIL")) == "NULL") | (col("EMAIL") == ""), lit(None)))

Я хочу знать, являюсь ли я фрагментом кодаИспользование выше корректно для идентификации INVALID электронных писем.

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