[英]Scala spark data frame phone number validation
val df = Seq[(String)]("", " ", null, "123456789a", "1111111111", "1.3-4567 80", " 1.23-4567 890 ", "1234567890").toDF("PhoneNumber")
val trimmed = regexp_replace(trim($"PhoneNumber"), "[ .-]", "")
val correct = trimmed.rlike(raw"\d{10,}") &&
!(trimmed.rlike(raw"^(\d)\1*$$"))
val df2 = df.withColumn("Correct", when(correct, "Y").otherwise("N"))
df2.show()
// +---------------+-------+
// | PhoneNumber|Correct|
// +---------------+-------+
// | | N|
// | | N|
// | null| N|
// | 123456789a| N|
// | 1111111111| N|
// | 1.3-4567 80| N|
// | 1.23-4567 890 | Y|
// | 1234567890| Y|
// +---------------+-------+
trim($"PhoneNumber")
刪除前導和尾隨空格
regexp_replace(..., "[ .-]", "")
刪除空格、點和逗號
.rlike(raw"\d{10,}")
檢查 10 位或更多位
!(....rlike(raw"^(\d)\1*$$"))
檢查所有相同的數字
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.