You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Spark SQL使用STRING_SPLIT报ParseException错误求助

解决Spark SQL中拆分逗号分隔值时的ParseException错误

在Azure Databricks 10.4 LTS(Spark 3.2.1、Scala 2.12)环境下,Spark SQL并不支持SQL Server风格的CROSS APPLY语法,这就是执行代码时出现ParseException: missing 'JOIN' at 'apply'错误的原因。同时,Spark SQL中没有STRING_SPLIT函数,对应的数组拆分功能由split函数实现。

你可以通过以下两种方式实现逗号分隔值的拆分:

方法一:使用lateral view + explode

这是Spark处理行转列的经典写法,兼容性较好:

select EmpPhoneNo, split_value
from EmpPhone as Emp
lateral view explode(split(EmpPhoneNo, ',')) as split_value
  • split(EmpPhoneNo, ','):将手机号字符串按逗号拆分为数组
  • explode:把数组中的每个元素拆成单独的行
  • lateral view:关联原表和拆分后的行数据,实现类似CROSS APPLY的效果

方法二:使用cross join + unnest(Spark 3.0+支持)

如果你的Spark版本在3.0及以上,可以用更直观的unnest函数:

select EmpPhoneNo, split_value
from EmpPhone as Emp
cross join unnest(split(EmpPhoneNo, ',')) as t(split_value)

unnest函数可以直接将数组展开为多行,配合cross join完成关联。

内容的提问来源于stack exchange,提问作者python learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:42:05