【发布时间】:2021-12-13 03:18:55
【问题描述】:
我有一个 pyspark 数据框,其名称列的示例值如下:
id NAME
---+-------
1 aaa bb c
2 xx yy z
3 abc def
4 qw er
5 jon lee ls G
我必须翻转最右边的部分并在左侧用逗号填充它并删除最右边的子字符串(使用空格分割)
预期输出
id NAME
---+-------
1 c, aaa bb
2 z, xx yy
3 def, abc
4 er, qw
5 G, jon lee ls
通过使用以下代码,我能够得到最正确的部分以用逗号添加它: split_col=split(df['NAME'],'') df2 = df2.withColumn('NAME_RIGHT',split_col.getItem(F.size(split_col) - 1))
上面的行给出了
NAME_RIGHT
c
z
def
er
我想替换 NAME_RIGHT 中的值,即 NAME 列中最右边的值,我尝试使用下面的代码,但它什么也没替换,如何实现?
df3 = df2.withColumn('NEW_NAME', regexp_replace(F.col("NAME"), str(df2.NAME_RIGHT),""))
【问题讨论】:
标签: pyspark replace apache-spark-sql str-replace regexp-replace