我有一个PySpark数据帧,df
如下所示:
|-----|-------|
|index|address|
|-----|-------|
|1|123 Apple Street|
|2|123-45-6789 Broad Street|
|-----|-------|
我的正则表达式模式r"\d{3}-\d{2)-\d{4}|\d{3} \d{2) \d{4}"
将向下过滤第2行。然而,我需要掩盖比赛,这必须是一场1:1的比赛。因此,在上面的示例中,更新的值应该是XXX-XX-XXXX Broad Street
,而不是X Broad Street
。
像这样:
|-----|-------|
|index|address|
|-----|-------|
|1|123 Apple Street|
|2|XXX-XX-XXXX Broad Street|
|-----|-------|
我尝试过将regex_replace
调用嵌套在regexp_extract
调用之上,如下所示:
regexp_replace(regexp_extract(df["address"], "\d{3}-\d{2)-\d{4}|\d{3} \d{2) \d{4}", 0), "\d", "X")
但是,我得到一个错误,它基本上表明我没有将字符串或类似字符串的对象传递给外部regexp_replace函数
有没有一种方法可以组合regexp_replace
和regexp_extract
函数来就地更新子字符串
试试这种方法
相关问题 更多 >
编程相关推荐