mysql - 使用字符位置向后搜索以查找子字符串的位置
问题描述
您好,我是 Pyspark 的新手。我正在尝试在 Pyspark 中做类似的事情。
甲骨文:INSTR('Corporate Floor','or', -3, 2)
结果:2
[函数从最后一个字符倒数到倒数第三个字符,也就是“Floor”中的第一个“o”。然后,该函数向后搜索“or”的第二次出现,并发现第二次出现以搜索字符串中的第二个字符开头。]
但不断出错,因为 Instr 在 Pyspark 中只有 2 个参数。
提前致谢。
解决方案
您需要结合substring
并instr
完成此任务。
df = spark.createDataFrame([('Corporate Floor',)],
'item : string')
df.selectExpr("item",
"substring(item,length(item)-2) AS search_item",
"instr(substring(item,length(item)-2),'or') AS search_loc").show()
#+---------------+-----------+----------+
#| item|search_item|search_loc|
#+---------------+-----------+----------+
#|Corporate Floor| oor| 2|
#+---------------+-----------+----------+
推荐阅读
- python - 无法在 docker build 中继续
- javascript - 如何使用 Javascript 允许进入下一页
- algorithm - 如何对两个字符串应用转换以反转字典比较的结果?
- reactjs - 在 App.js 中出现奇怪的错误“')' expected.ts(1005)”
- c# - 如何在asp.net核心的startup.cs文件的配置方法中更改范围服务的属性值
- javascript - Redux Toolkit:状态在 reducer 中显示为 Proxy / undefined
- spring-security - 后端 Spring 安全性中未处理 JWT 令牌
- in-app-purchase - Flurry 和 IAP 冲突
- reactjs - 将 React 类组件转换为函数式组件
- amazon-s3 - Ceph S3 用户和子用户权限如何协同工作?