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

如何在Spark SQL中基于单列分隔值拆分生成多行数据

Spark SQL 管道符分隔字段拆分为多行实现方案

核心实现逻辑

无需借助Dataframe API,纯SQL即可实现类似explode的拆分效果:先通过split函数将管道符分隔的字符串字段拆分为数组,再通过explode函数将数组元素展开为独立行。

示例查询语句

假设待处理的表名为your_table,存储管道符分隔值的字段名为pipe_separated_col,参考查询如下:

SELECT
  -- 此处可填写原表需要保留的其他字段
  col1,
  col2,
  split_value
FROM your_table
LATERAL VIEW EXPLODE(SPLIT(pipe_separated_col, '\\|')) temp_table AS split_value;

注意:split的第二个参数为正则表达式,管道符|属于正则特殊字符,需要加双反斜杠转义才能被识别为普通分隔符。

效果说明

如果原表某行pipe_separated_col的取值为Value1|Value2|Value3,执行上述查询后会生成3行结果,split_value的取值分别为Value1、Value2、Value3,其余原表字段的取值和原行保持一致。

可选优化

  • 若拆分后出现空字符串(比如分隔符连续、首尾带分隔符的场景),可在查询末尾增加过滤条件:WHERE split_value != ''

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:09:03