我有一个pyspark数据框,其中包含一串字符串。
df示例:
*******5214
我要删除字符public String getMaskedValue(String value) {
String maskedRes = "";
if (value!=null && !value.isEmpty()) {
maskedRes = value.trim();
if (maskedRes.length() <= 5) {
return maskedRes.replaceAll(value, "$1*");
} else if (value.length() == 11) {
return maskedRes.replace(value.substring(0, 7), "$1*");
}
}
return maskedRes;
}
我尝试使用number | id
---------------
12 | [12, .AZ, .UI]
------------------------
14 | [CL, .RT, OP.]
:
'.'
但是我认为regexp_replace是字符串而不是数组的好解决方案。
如何从数组中删除此字符? 谢谢
答案 0 :(得分:2)
在Spark 2.4或更高版本中,您可以使用transform
import pyspark.sql.functions as F
df.withColumn("id",F.expr("transform(id,x-> replace(x,'.',''))")).show()
+------+------------+
|number| id|
+------+------------+
| 12|[12, AZ, UI]|
| 14|[CL, RT, OP]|
+------+------------+
工作示例: