用pysp截断字符串

2024-09-26 04:52:07 发布

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

我目前正在使用Databricks开发PySpark,我正在寻找一种像excel right函数那样截断字符串的方法。 例如,我想将DataFrame8841673_3中的ID列更改为8841673。在

有人知道我该怎么做吗?在


Tags: 方法函数字符串rightidexcelpysparkdatabricks
2条回答

带有regexp_extract的正则表达式:

from pyspark.sql.functions import regexp_extract

df = spark.createDataFrame([("8841673_3", )], ("id", ))

df.select(regexp_extract("id", "^(\d+)_.*", 1)).show()
# +                +
# |regexp_extract(id, ^(\d+)_.*, 1)|
# +                +
# |                         8841673|
# +                +

regexp_replace

^{pr2}$

或者只是split

from pyspark.sql.functions import split

df.select(split("id", "_")[0]).show()
# +       -+
# |split(id, _)[0]|
# +       -+
# |        8841673|
# +       -+

您可以使用^{}方法:

import pyspark.sql.functions as F

def left(x, n):
    return x.substr(0, n)

def right(x, n):
    x_len = F.length(x)
    return x.substr(x_len - n, x_len)

相关问题 更多 >