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

使用JSON_TUPLE提取JSON中profileid报参数需为字符串错误如何修复

问题原因

json_tuple UDF要求传入的第一个参数必须是字符串类型的JSON文本,你的报错是因为MY_TABLE表的header字段不是STRING类型(可能是二进制、JSON对象类型等其他类型),不符合函数入参要求。

修复方案

方案1:转换字段类型后使用原逻辑

你只需要先将header字段强制转换为STRING类型即可,修改后的SQL如下:

SELECT x.profileid
FROM MY_TABLE a
LATERAL VIEW JSON_TUPLE (
  CAST(a.header AS STRING),
  'profileid'
) x AS profileid

方案2:单字段提取更简单的写法

如果只需要提取profileid这一个字段,也可以直接用get_json_object函数,写法更简洁:

SELECT get_json_object(CAST(a.header AS STRING), '$.profileid') AS profileid
FROM MY_TABLE a
额外注意事项

你贴出的JSON示例中键值对用.分隔是不符合JSON规范的,正常JSON应该用:分隔键值。如果你的实际存储数据里确实是.作为分隔符,需要先替换为:再解析,修改参考:

SELECT x.profileid
FROM MY_TABLE a
LATERAL VIEW JSON_TUPLE (
  REGEXP_REPLACE(CAST(a.header AS STRING), '"\\."', '":"'),
  'profileid'
) x AS profileid

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:15:01