presto读取mysql中的json类型字段数据解决办法

mysql中如果字段类型为json类型的话,presto只可以查询,但是不能做转换操作,包括最常规的json函数全部不能用;说白了目前presto暂时不支持mysql 中json类型,先来看张mysql中的表

CREATE TABLE `test` (
  `date` date NOT NULL DEFAULT '0000-00-00' ,
  `id` varchar(20) NOT NULL ,
  `data` json NOT NULL ,
  PRIMARY KEY (`date`,`id`)
)

在presto中查看表结构

CREATE TABLE m_catalogs.m_schema.test (    
date date,    
id varchar(20),    
data char(0) )

可以看到,data字段在presto中映射成了char(0),字段长度为零,你做任何操作转换操作都会报错,因为presto在解析的时候,发现你的字段长度为0,而你的实际长度不为零就会报如各种错,解决办法当然有,也比较简单

  select json_extract(json_parse(trim(cast(cast(data as char(10000))as varchar(10000)))),'$.photo')
   from m_catalogs.m_schema.test limit 10
   

接下来你们也知道怎么处理了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值