Pyspark使用另一列中的值替换Spark dataframe列中的字符串

2024-10-03 23:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过从另一列创建搜索字符串来替换列中的值

以前 id address st
1 2.PA1234.la 1234 2 10.PA125.la 125 3 2.PA156.ln 156
之后 id address st
1 2.PA9999.la 1234 2 10.PA9999.la 125 3 2.PA9999.ln 156
我试过了

df.withColumn("address", regexp_replace("address","PA"+st,"PA9999"))
df.withColumn("address",regexp_replace("address","PA"+df.st,"PA9999")

两个接缝都会失效

^{pr2}$

可能与 Pyspark replace strings in Spark dataframe column


Tags: 字符串iddfaddresslareplacestln
1条回答
网友
1楼 · 发布于 2024-10-03 23:24:10

你也可以使用udf。在

当您需要使用另一列中的值修改数据帧条目时,可能会应用该解决方案:

from pyspark.sql.functions import udf
from pyspark.sql.types import StringType

pd_input = pd.DataFrame({'address': ['2.PA1234.la','10.PA125.la','2.PA156.ln'],
             'st':['1234','125','156']})

spark_df = sparkSession.createDataFrame(pd_input)


replace_udf = udf(lambda address, st: address.replace(st,'9999'), StringType())

spark_df.withColumn('adress_new',replace_udf(col('address'),col('st'))).show()

输出:

^{pr2}$

相关问题 更多 >