我想从列中的值中删除最后两个字符。pysparkDataframe的值如下所示:
1000.0 1250.0 3000.0 ...
它们应该是这样的:
1000 1250 3000 ...
谨致问候
zaq34kh61#
你可以用 substring 获取字符串直到索引 length - 2 :
substring
length - 2
import pyspark.sql.functions as F df2 = df.withColumn( 'col', F.expr("substring(col, 1, length(col) - 2)") )
ru9i0ody2#
你可以用 regexp_replace :
regexp_replace
from pyspark.sql import functions as F df1 = df.withColumn("value", F.regexp_replace("value", "(.*).{2}", "$1")) df1.show() # +-----+ # |value| # +-----+ # | 1000| # | 1250| # | 3000| # +-----+
或者 regexp_extract :
regexp_extract
df1 = df.withColumn("value", F.regexp_extract("value", "(.*).{2}", 1))
n8ghc7c13#
你可以使用这个函数 substring_index 要提取周期之前的部分:
substring_index
df = spark.createDataFrame([['1000.0'], ['2000.0']], ['col']) df.withColumn('new_col', F.substring_index(F.col('col'), '.', 1))
结果:
+------+-------+ | col|new_col| +------+-------+ |1000.0| 1000| |2000.0| 2000| +------+-------+
3条答案
按热度按时间zaq34kh61#
你可以用
substring
获取字符串直到索引length - 2
:ru9i0ody2#
你可以用
regexp_replace
:或者
regexp_extract
:n8ghc7c13#
你可以使用这个函数
substring_index
要提取周期之前的部分:结果: