开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

麻烦请问一下dataworks 利用get_json_object 解析json中的decimal1

麻烦请问一下dataworks 利用get_json_object 解析json中的decimal128类型 不识别成数字类型,而是用getter方法解析,得到的东西没用,我怎么才能识别成数字类型呢

展开
收起
游客3oewgrzrf6o5c 2022-08-26 17:36:56 1005 0
1 条回答
写回答
取消 提交回答
  • 全栈JAVA领域创作者

    在使用DataWorks中的get_json_object函数解析json格式数据时,get_json_object默认会将decimal类型转换成string类型,因此你需要对返回的字符串进行类型转换才能得到数字类型。

    如果你使用的是Hive SQL语句的话,可以使用cast函数或者to_number函数将字符串类型转换成decimal类型,例如:

    select cast(get_json_object(json_str, '$.decimal1') as decimal(18,2)) from table; 或者

    select to_number(get_json_object(json_str, '$.decimal1')) from table; 另外,在DataWorks的数据开发模块中也支持使用自定义函数UDF来实现更为灵活的类型转换逻辑。你可以编写一个UDF函数来直接将string类型转换成decimal类型,然后在SQL语句中调用该函数即可。

    注意:如果你使用的是MaxCompute作为计算引擎,由于MaxCompute不支持decimal类型,因此无法直接进行类型转换。在这种情况下,你可以考虑使用double类型来替代decimal类型。

    2023-06-08 22:37:43
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 热门讨论

    热门文章

    相关电子书

    更多
    神龙云服务器产品及技术深度解析 立即下载
    弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
    又快又稳:阿里云下一代虚拟交换机解析 立即下载

    相关镜像