请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于CourseClickCountDAO中存储数据的疑问

老师您好:

第一个问题

在编写HBaseUtils时,采用了put Api来实现HBase数据存储。但是在CourseClickCountDAO时,又采用了incrementColumnValue这API实现HBase的存储,这两者的区别是不是:

put只是添加记录,如果遇到重复的qualifer,会覆盖;

而incrementColumnValue,遇到已存的qualifer会累加,遇到没有的qualifer记录,就添加。


第二个问题,在测试CourseClickCountDAO我遇到了

field is not a long, it is 1 byte wide这个错误,我看到有帖子已经发过这个错误,这个错误的解决方式是讲HBaseUtils中put 方法中 value的参数类型从String 修改为Long,这里我很费解,因为在CourseClickCountDAO中的save方法并没有用到HBaseUtils的put 方法,为什么修改了put方法的参数类型,CourseClickCountDAO测试就没问题了


正在回答

2回答

我刚看了下,实体类的case class中定义了数据类型

0 回复 有任何疑惑可以回复我~
  • 这位小伙伴挺快,我翻了下git代码,应该是case class中定义了。
    case class CourseClickCount(day_course:String, click_count:Long)
    回复 有任何疑惑可以回复我~ 2018-08-07 23:10:14
  • 提问者 慕粉1325555707 #2
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-08-08 21:26:44
  • 提问者 慕粉1325555707 回复 Michael_PK #3
    谢谢老师解答
    回复 有任何疑惑可以回复我~ 2018-08-08 21:27:04
Michael_PK 2018-08-07 22:51:56

第一个问题:如果累加那就是incre....,put的话需要自己获取出来再加上再放进去吧。第二个问题我明天看下代码,再回复你,时间比较长,记不太清了

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信