事实上,有一个为此设计的Python库,validate_email
。
您可以使用下面的代码片段来验证电子邮件ID。
from validate_email import validate_email
from pyspark.sql.types import BooleanType
from pyspark.sql.functions import udf
valid_email = udf(lambda x: validate_email(x), BooleanType())
emailvalidation.withColumn('is_valid', valid_email('EmailAddress')).show()
+--------------------+--------+
| email|is_valid|
+--------------------+--------+
|[email protected] | true|
| abc | false|
+--------------------+--------+
另一种方法是使用正则表达式。您可以使用以下代码段。
import re
regex = '^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$'
def check(email):
if(re.search(regex,email)):
print("Valid Email")
else:
print("Invalid Email")
if __name__ == '__main__' :
email = "[email protected]"
check(email)
email = "aswinraja.com"
check(email)
+--------+
|Valid |
|Invalid |
+--------+
您可以使用下面的代码来验证表中的电子邮件ID。
from pyspark.sql.functions import udf
from pyspark.sql.types import BooleanType
import re
def regex_search(string):
regex = '^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$'
if re.search(regex, string, re.IGNORECASE):
return True
return False
validateEmail_udf = udf(regex_search, BooleanType())
df = df.withColumn("is_valid",validateEmail_udf(col("email")))