我正在尝试构建一个正则表达式模式来删除字符串中的标点符号。我决定使用string
库中的punctuation
。但是,当我执行它时,Spark返回一个错误,其中有一个未闭合的字符。在
我怀疑punctuation
中的字符在执行过程中结束了一个引号。我觉得这应该很容易解决,但我不确定如何解决。我的代码如下:
from pyspark.sql.functions import regexp_replace, trim, col, lower
import string
def removePunctuation(column):
no_punct = regexp_replace(column, string.punctuation, '')
lowered = lower(no_punct)
cleaned = strip(lowered)
return cleaned
我得到这个错误org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 86.0 failed 1 times, most recent failure: Lost task 0.0 in stage 86.0 (TID 3709, localhost): java.util.regex.PatternSyntaxException: Unclosed character class near index 31
你可以只包括你想要的东西:数字、字母和空格
简单明了:
要使用
^{pr2}$string.punctuation
,您必须转义单个字符并将它们放入字符集中,但这很容易出错,而且很难看:请注意,下划线被视为合法的字母数字字符,因此需要特殊删除。在
相关问题 更多 >
编程相关推荐