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");
        }
```


来自为知笔记(Wiz)


你可能感兴趣的:(spark sql json处理代码修改记录)