Spark SQL提取首个点号前字符串报错:Undefined function: 'charindex'
Spark SQL提取首个句号前字符并转大写的解决方案
Spark SQL中不存在charindex函数,这是你报错的核心原因——该函数属于SQL Server等数据库,Spark SQL并未支持。以下是两种可实现需求的写法:
方法1:使用INSTR+SUBSTRING组合
SELECT UPPER(SUBSTRING(Place, 1, INSTR(Place, '.') - 1)) AS City FROM your_table;
INSTR(Place, '.'):获取首个英文句号.在字符串中的位置SUBSTRING(Place, 1, 位置值-1):截取从字符串开头到句号前的部分UPPER():将截取结果转为大写
方法2:使用SPLIT拆分字符串
SELECT UPPER(SPLIT(Place, '\\.')[0]) AS City FROM your_table;
SPLIT(Place, '\\.'):按.拆分字符串(.是正则特殊字符,需用双反斜杠转义)[0]:取拆分后的第一个元素UPPER():将结果转为大写
两种方法运行后,都会得到你期望的输出:
City CHICAGO DENVER DALLAS
内容的提问来源于stack exchange,提问作者Codegator
相关产品推荐
相关产品推荐

