2024-09-26 04:52:07 发布
网友
我目前正在使用Databricks开发PySpark,我正在寻找一种像excel right函数那样截断字符串的方法。 例如,我想将DataFrame8841673_3中的ID列更改为8841673。在
DataFrame
8841673_3
8841673
有人知道我该怎么做吗?在
带有regexp_extract的正则表达式:
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:
regexp_replace
或者只是split:
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)
带有
regexp_extract
的正则表达式:
^{pr2}$regexp_replace
:或者只是
split
:您可以使用^{} 方法:
相关问题 更多 >
编程相关推荐