您的位置:首页 > 数据库

spark sql json处理代码修改记录

2015-07-17 18:58 351 查看
spark sql json处理代码修改记录.md
###JacksonParser 字符串到数值类型 的转换几种数值类型都调整,都增加 | VALUE_STRING,如:
</div><div>package org.apache.spark.sql.json<br></div><div><div> case (VALUE_NUMBER_INT | VALUE_NUMBER_FLOAT | VALUE_STRING, FloatType) =></div><div>        parser.getFloatValue</div></div><div><br></div><div>
###DateUtils 日期时间类型解析默认支持格式:2015-03-05T08:25:55.769Z
增加没有毫秒的数据处理:2015-03-05T08:33:45Z
</div><div>package <span style="font-size: 10.5pt; line-height: 1.5;">org.apache.spark.sql.catalyst.util</span><br></div><div><div>if (s.endsWith("Z")) {</div><div>      // this is zero timezone of ISO8601</div><div>      if (s.length==24) {</div><div>        stringToTime(s.substring(0, s.length - 1) + "GMT-00:00")</div><div>      }</div><div>      else{</div><div>        //hongliangpan add 此种格式,没有毫秒 2015-03-05T08:33:45Z</div><div>        stringToTime(s.substring(0, s.length - 1) + ".000GMT-00:00")</div><div>      }</div><div>    }</div></div><div>

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


来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: