我有以下DF
name
Shane
Judith
Rick Grimes
我想生成下面这个
name substr
Shane hane
Judith udith
Rick Grimes ick Grimes
我试过:
F.substring(F.col('name'), 1)
F.substring(F.col('name'), 1, None)
F.substring(F.col('name'), 1, F.length(F.col('name')))
但所有这些方法都给我带来了一个错误。
如何获得所需的输出?
3条答案
按热度按时间ercv8c1e1#
您可以使用
expr
获得所需的输出y1aodyip2#
spark文档用于索引不基于0的子字符串状态
第一个月
pyspark.sql.functions.substring
pgx2nnw83#
F.substring
接受整数,因此只有在传递整数时才有效。如果您想传递一个动态值,可以传递SQL的子字符串或
Col.substr
。SQL语言
**一个
这将采用
Column
(许多Pyspark函数返回Column
,包括F.length
)或int
。尽管如此,startPos和length必须属于同一类型。例如:如果需要传递Column
作为长度,请使用lit
作为startPos。