gpt4 book ai didi

python - 使用负索引从 pyspark 字符串列的最后一个索引中提取多个字符

转载 作者:行者123 更新时间:2023-11-28 20:01:50 24 4
gpt4 key购买 nike

密切相关:Spark Dataframe column with last character of other column但我想从 -1 索引中提取多个字符。


我有以下 pyspark 数据框 df

+----------+----------+
| number|event_type|
+----------+----------+
|0342224022| 11|
|0112964715| 11|
+----------+----------+

我想从 number 列的最后一个索引中提取 3 个字符。

我尝试了以下方法:

from pyspark.sql.functions import substring 
df.select(substring(df['number'], -1, 3), 'event_type').show(2)

# which returns:

+----------------------+----------+
|substring(number,-1,3)|event_type|
+----------------------+----------+
| 2| 11|
| 5| 11|
+----------------------+----------+

下面是预期的输出(我不确定上面的输出是什么):

+----------------------+----------+
|substring(number,-1,3)|event_type|
+----------------------+----------+
| 022| 11|
| 715| 11|
+----------------------+----------+

我做错了什么?

注:Spark版本1.6.0

最佳答案

这就是您使用 substring 的方式.您的位置将为 -3,长度为 3。

pyspark.sql.functions.substring(str, pos, len)

您需要将子字符串函数调用更改为:

from pyspark.sql.functions import substring
df.select(substring(df['number'], -3, 3), 'event_type').show(2)
#+------------------------+----------+
#|substring(number, -3, 3)|event_type|
#+------------------------+----------+
#| 022| 11|
#| 715| 11|
#+------------------------+----------+

关于python - 使用负索引从 pyspark 字符串列的最后一个索引中提取多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49793479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com