PySpark:使用Regex删除空格后的字符-数字组合
我有一列字符串,其中一些是这样的:“Telefon T1”,“Post P2,…现在我想删除单词后面的所有内容。例如,Telefon T1变成了简单的Telefon。我用各种方式尝试了下面的代码,但它一直给我elephonPySpark:使用Regex删除空格后的字符-数字组合,regex,string,pyspark,character,data-cleaning,Regex,String,Pyspark,Character,Data Cleaning,我有一列字符串,其中一些是这样的:“Telefon T1”,“Post P2,…现在我想删除单词后面的所有内容。例如,Telefon T1变成了简单的Telefon。我用各种方式尝试了下面的代码,但它一直给我elephon df = df.withColumn('mycolumn', regexp_replace('mycolumn', '[*[ ]?[A-Z]?\d$]'', "")) 这不是一个pyspark问题,而是一个正则表达式问题。因此,如果您将此问题与列表一起使用,请替换“我会得
df = df.withColumn('mycolumn', regexp_replace('mycolumn', '[*[ ]?[A-Z]?\d$]'', ""))
这不是一个pyspark问题,而是一个正则表达式问题。因此,如果您将此问题与列表一起使用,请替换“我会得到它”。谢谢您
df = df.withColumn('mycolumn', regexp_replace('mycolumn', '^\\s*(\\S+).*', '$1'))
见
详细信息
-字符串的开头^
-0+空格\s*
-第1组(在替换模式中以(\S+)
表示):任何1个或多个非空白字符$1
-字符串的其余部分,除换行符以外的0个或更多字符,尽可能多*
替换模式中的
$1
replacement backreference只保留结果中的第1组值。Tryregexp\u replace('mycolumn',r'^\s*(\s+).*,'r'\1')
这将为每行返回1。您是否使用r'\1'
作为替换?那么,请尝试regexp\u extract('mycolumn',r'^\s*(\s+),1)
不清楚您的环境遵循什么样的正则表达式语法。请尝试使用regexp\u替换('mycolumn','^\\s*(\\s+.*','$1')
。或者替换为'\\1'
。这是一个好主意。