在Hive中处理字符串时,split()函数是一个非常实用的工具——它能够根据指定的分隔符将字符串拆分成数组,从而方便后续从数组中提取特定位置的数据元素。

split()函数的语法十分简洁:
split(string str, string pattern)
它包含两个参数:
- str:待拆分的原始字符串
- pattern:指定的分隔符(支持正则表达式模式)
下面通过一个实际案例来演示split()的用法。假设有一张用户表 user_info,其中包含一个字段 name_age,存储的是姓名和年龄,用逗号分隔,例如 "John,25"。如果需要分别提取姓名和年龄,使用 split() 即可轻松实现:
SELECTname_age,split(name_age, ',')[0] as name,split(name_age, ',')[1] as ageFROMuser_info;
执行上述查询后,结果集会同时显示原始的 name_age 字段,以及通过 split() 拆分得到的 name 和 age 两列数据。
需要特别注意的是,split()拆分后得到的数组索引从 0 开始计数,因此 [0] 对应分隔符前的内容(即姓名),[1] 对应分隔符后的内容(即年龄)。这个索引规则在编写查询时容易混淆,务必牢记。
