Spark SQL调用split_part取字符串首单词报错未定义如何解决
报错原因
split_part属于Redshift数据库特有的内置函数,不属于Spark SQL的原生支持函数范畴,在Glue作业的Spark执行环境中没有内置注册这个函数,因此直接调用会抛出未定义函数的异常。
适配Spark SQL的实现方案
你可以用Spark原生支持的split函数配合数组下标取值实现完全相同的逻辑,修改后的查询语句如下:
select split(Office_NAME, ' ')[0] Office_Alias from world_Location.Office_Addrsss
补充说明:
split函数会将目标字符串按照指定分隔符切割为数组- Spark SQL的数组下标从0开始计数,所以取第一个元素用
[0]即可,效果和Redshift的split_part(字段, ' ', 1)完全一致。
内容的提问来源于stack exchange,提问作者Codegator
相关产品推荐
相关产品推荐

