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

如何使用Spark SQL将GPS坐标格式单列拆分为多列

解决Spark SQL拆分GPS坐标为多列的问题

嘿,我懂你遇到的问题了——你用explode(split(...))得到的是把拆分后的结果变成了多行,但你实际想要的是把GPS坐标拆成四个独立的列对吧?

为什么原来的方法不对?

explode()函数的作用是把数组里的每个元素拆成单独的行,所以你那行语句会把一行数据变成四行,这和你想要的横向拆分成多列的需求正好相反。

正确的实现方式

Spark SQL的split()函数会返回一个数组,我们可以直接通过数组下标来提取每个元素作为单独的列,索引从0开始:

SELECT
  split(`col1`, ' ')[0] AS `1st_split`,
  split(`col1`, ' ')[1] AS `2nd_split`,
  split(`col1`, ' ')[2] AS `3rd_split`,
  split(`col1`, ' ')[3] AS `4th_split`
FROM table_example;

优化:处理多余空格

如果你的col1里可能存在多个连续空格(比如坐标之间不小心多打了空格),可以把分隔符改成\\s+(匹配一个或多个空白字符),避免拆分出空字符串:

SELECT
  split(`col1`, '\\s+')[0] AS `1st_split`,
  split(`col1`, '\\s+')[1] AS `2nd_split`,
  split(`col1`, '\\s+')[2] AS `3rd_split`,
  split(`col1`, '\\s+')[3] AS `4th_split`
FROM table_example;

这样执行后,就能得到你预期的四列结果啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:40:34