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

Hive中如何按双分隔符拆分字符串或遍历数组二次拆分?

在Hive中实现多分隔符字符串拆分的方案

方案1:拆分数组后遍历元素二次拆分(适合键值对数量不固定的场景)

先通过split按;将原字符串拆分为数组,再用LATERAL VIEW explode将数组展开为行,最后对每行元素按=拆分提取键值:

SELECT 
  split(item, '=')[0] AS id,
  split(item, '=')[1] AS fruit
FROM (
  SELECT split("123=apples;456=oranges", ";") AS arr
) t
LATERAL VIEW explode(arr) exploded AS item;

执行后会得到两行结果:

idfruit
123apples
456oranges

方案2:用transform函数直接生成嵌套数组

如果需要保留数组结构,将每个元素拆分为子数组,可使用Hive的transform函数对数组内每个元素应用拆分逻辑:

SELECT 
  transform(arr, x -> split(x, '=')) AS split_result
FROM (
  SELECT split("123=apples;456=oranges", ";") AS arr
) t;

执行结果为嵌套数组:[["123","apples"],["456","oranges"]]

方案3:一次性多分隔符拆分(适合固定数量键值对)

如果已知键值对数量固定,可直接用;|=作为分隔符一次性拆分字符串,再按索引提取对应内容:

SELECT 
  split(str, ';|=')[0] AS id1,
  split(str, ';|=')[1] AS fruit1,
  split(str, ';|=')[2] AS id2,
  split(str, ';|=')[3] AS fruit2
FROM (
  SELECT "123=apples;456=oranges" AS str
) t;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:40:14