问题1:咨询一个大数据计算MaxCompute函数(get_json_object)问题,有这样一个json {"a":[{"t":[{"Debit":1},{"Debit":2}],"c":"aa"},{"t":[{"Debit":3},{"Debit":4}],"c":"bb"}]} 我想获取的结果是这样的
应该怎么写这个SQL喃?
json的层级如上
问题2:是这样的,里面的这个层级是不确定的,我看了你们的文档,好像没有关于这个一对多的多层级取数,所以才来咨询下
假设您想要获取每个 "t" 数组中的所有 "Debit" 值,并将它们作为一个列表返回,可以使用 MaxCompute 函数 get_json_object 结合其他函数来实现。
回答1:试一下这样1. 用GET_JSON_OBJECT获取到a,的值,变成json数组2. 获取json数组里的值:string类型的话,replace把两边的[] 替换成空,再用split切分json,再用get json object也可以这样直接获取数组里的下标为0的数值
关于json数据类型的一些用法,可以参考下这个文档
https://help.aliyun.com/zh/maxcompute/user-guide/maxcompute-json-type-usage-guide-trial-beta-version?spm=a2c4g.11186623.0.i109#b7b6afe014q9i
回答2:如果每一条数据的层级都不确定,需要自建udf实现一下逻辑了。
层级确定的话,可以用上述函数逐层获取一下看看,此回答整理自钉群“MaxCompute开发者社区2群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。