项目场景:
提示:运行Hadoop实现分区效果
例如:自练习对数据进行分区整理
问题描述:
报错信息:Caused by: java.lang.NullPointerException
Job job_local924673953_0001 failed with state FAILED due to: NA
原因分析:
数据格式异常(本次为空行过多)
bean类:没有实现接口Writable(新手很容易忘记!)
解决方案:
检查数据内容是否存在很多个“空行”!! 麻烦请将其清理干净!
bean类:没有实现接口Writable
实现接口即可
以上再重新运行就可以解决问题了!!
我又回来补充了!! 为什么有空格就出现空指针呢?难道空格就不能编译了嘛? 于是乎我又翻了一下源码,源码里面又这样一句话!
@notNull()是什么鬼!!!!
只好又去找资料了啊!可辛苦了
@Null 被注释的元素必须为null
@NotNull 被注释的元素不能为null
@AssertTrue 被注释的元素必须为true
@AssertFalse 被注释的元素必须为false
@Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max,min) 被注释的元素的大小必须在指定的范围内。
@Digits(integer,fraction) 被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past 被注释的元素必须是一个过去的日期
@Future 被注释的元素必须是一个将来的日期
@Pattern(value) 被注释的元素必须符合指定的正则表达式。
@Email 被注释的元素必须是电子邮件地址
@Length 被注释的字符串的大小必须在指定的范围内
@NotEmpty 被注释的字符串必须非空
@Range 被注释的元素必须在合适的范围内
以上其实在告诉你们另外一个事情!!就是在hadoop编译的时候!! 请不要序列化你不需要的东西!!不然会被认为是null!就比如
date 和state 明显是灰色的,表示我朋友没有调用它, 但是还是进行了序列化编译! 所以被认定为null 就直接爆空指针异常了!!把这两个删掉就可以了!!
就这破bug弄的我, 啊不是,弄的我朋友忙活了俩小时~~~~引以为戒