我正在尝试获取'/'之后的最后一个字符串。
该列可能会像这样: "lala/mae.da/rg1/zzzzz"(不一定只有3个/),我想返回:zzzzz
在SQL和Python中很容易解决,但我想知道在PySpark中是否有方法可以解决。
在Python中解决:
original_string = "lala/mae.da/rg1/zzzzz"
last_char_index = original_string.rfind("/")
new_string = original_string[last_char_index+1:]
或者直接:
new_string = original_string.rsplit('/', 1)[1]
在SQL中:
RIGHT(MyColumn, CHARINDEX('/', REVERSE(MyColumn))-1)
针对PySpark,我想到的方案是:
df = df.select(col("MyColumn").rsplit('/', 1)[1])
但我遇到了以下错误:TypeError: 'Column' object is not callable,而且我甚至不确定Spark是否允许我使用rsplit。
您有任何建议可以解决这个问题吗?