spark sql json处理代码修改记录

spark sql json处理代码修改记录.md

###JacksonParser  字符串到数值类型 的转换
几种数值类型都调整,都增加   | VALUE_STRING ,如:
```
package org.apache.spark.sql.json
 case (VALUE_NUMBER_INT | VALUE_NUMBER_FLOAT | VALUE_STRING, FloatType) =>
        parser.getFloatValue

```
### DateUtils  日期时间类型解析
默认支持格式: 2015-03-05T08:25:55.769Z
增加没有毫秒的数据处理:2015-03-05T08:33:45Z
```
package  org.apache.spark.sql.catalyst.util
if (s.endsWith("Z")) {
      // this is zero timezone of ISO8601
      if (s.length==24) {
        stringToTime(s.substring(0, s.length - 1) + "GMT-00:00")
      }
      else{
        //hongliangpan add 此种格式,没有毫秒 2015-03-05T08:33:45Z
        stringToTime(s.substring(0, s.length - 1) + ".000GMT-00:00")
      }
    }
```

###发布说明
```
替换官方代码
或先加载二次开发包
```
sql 加上where 条件后,就不能查询出数据,原因还是 数值类型 用双引号的问题
"stayTime":"33.015",
修改ParserBase 添加  VALUE_STRING处理分支
```
package com.fasterxml.jackson.core.base;
else if(this._currToken == JsonToken.VALUE_STRING) {
            this._parseSlowFloat(expType);
        } else {
            this._reportError("Current token (" + this._currToken + ") not numeric, can not use numeric value accessors");
        }
```




转载于:https://my.oschina.net/itnms/blog/479884

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值