Вы можете применить свое регулярное выражение с помощью функции столбца rlike , как показано ниже:
import pyspark.sql.functions as F
#your initial dataframe
l = [('+420602642919',)
,('blabla',)]
df=spark.createDataFrame(l, ['someText'])
yourregex = '^((\+|00)(42)|0)?((060|660|664|676|68[0-1]|688)([0-9]){7}|(699)([0-9]){8})$'
#adding a column
df.withColumn('match', df.someText.rlike(yourregex)).show()
#or filtering
df.filter(df.someText.rlike(yourregex)).show()
Выход:
+-------------+-----+
| someText|match|
+-------------+-----+
|+420602642919| true|
| blabla|false|
+-------------+-----+
+-------------+
| someText|
+-------------+
|+420602642919|
+-------------+