PySpark DataFrame列中移除第一个'- '及之前所有字符的方法
解决PySpark DataFrame移除第一个'- '及其前内容的问题
可以使用regex_replace函数配合合适的正则表达式实现需求,核心是匹配从字符串开头到第一个'- '的所有内容并替换为空。
正则表达式说明
使用正则 ^.*? - :
^:匹配字符串起始位置.*?:非贪婪模式匹配任意字符(直到遇到第一个目标匹配项)-:匹配目标分隔符(注意空格和横杠的顺序)
代码实现
from pyspark.sql.functions import regex_replace # 处理DataFrame,生成新列(或覆盖原列) df = df.withColumn("A", regex_replace("A", r"^.*? - ", ""))
效果验证
处理后DataFrame的'A'列结果如下:
| 'A' | ------------------- | order - one | | sell | | order | | sell |
这个方案会自动忽略没有'- '的行(如第三、四行),直接保留原内容,完全符合预期输出。
内容的提问来源于stack exchange,提问作者chicagobeast12
相关产品推荐
相关产品推荐

