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

在Databricks中如何使用string_split()拆分分隔字段并展开数据

解决Databricks中拆分字符串并行转列的问题

问题分析

你的SQL报错主要有几个核心问题:

  • Databricks SQL不支持CROSS APPLY语法,需改用Spark SQL兼容的LATERAL VIEW EXPLODE实现行转列
  • STRING_SPLIT返回数组类型,必须配合EXPLODE才能将数组元素拆分为独立行
  • 原语句里的GROUP BY cs.PERMID完全无效:既未定义别名cs,且你的需求是拆分后保留所有行,根本不需要分组操作
  • 你期望输出中的ID=3应该是源数据ID=2的笔误,以下修正基于源数据逻辑处理

正确SQL语句

%sql
SELECT ID, split_value AS value
FROM TempView
LATERAL VIEW EXPLODE(STRING_SPLIT(value, ',')) AS split_value

说明

  • STRING_SPLIT(value, ',')将value列按逗号分割成数组
  • LATERAL VIEW EXPLODE(...)将数组中的每个元素拆分为单独的行,同时保留对应的ID
  • 给拆分后的列起别名split_value,再重命名为value以匹配你需要的输出结构

执行以上语句后,会得到符合预期的结果:

IDvalue
1value-1
1value-2
1value-3
2value-1
2value-4

内容的提问来源于stack exchange,提问作者Mike Expendable

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:37:45