【发布时间】:2019-09-14 02:53:52
【问题描述】:
我有一个蜂巢字段,其中数据以这种格式存储。
co_mx
["2.00","7570180962446"]
[3,"7566180246570"]
[6,"7577182138618"]
[10.00,"7573181367421"]
[10,"7573181433469"]
我想提取列表中的第二个元素,即较大的数字字符串。
当我在 Hive cli 终端中运行代码时,我只使用了两个转义字符 (\),它可以工作,但我发现当使用 hive -e 运行代码时,我必须使用 4 个转义字符但粗体部分代码的一部分,即 case 语句的 then 部分导致了一些我无法调试的问题。
select
cast(
trim(case
when instr(split(split(co_mx,'\\\\,')[1],'\\\\]')[0],'\\\\"')>0 then
**split(split(split(co_mx,'\\\\,')[1],'\\\\]')[0],'\\\\"')[1]**
else split(split(co_mx,'\\\\,')[1],'\\\\]')[0]
end)
as string) as id
from input_table
感谢帮助
【问题讨论】:
-
相关列的数据类型是什么?