关于CourseClickCountDAO中存储数据的疑问

来源:12-16 -功能一之数据库访问DAO层方法实现

慕粉1325555707

2018-08-07

老师您好:

第一个问题

在编写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回答

杀殿的爆碎牙

2018-08-07

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

0
4
ABC简简简简
回复
慕粉1325555707
请问是什么原因导致的field is not a long, it is 1 byte wide。
2020-09-04
共4条回复

Michael_PK

2018-08-07

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

0
0

Spark Streaming实时流处理项目实战

Flume+Kafka+Spark Streaming 构建通用实时流处理平台

1404 学习 · 571 问题

查看课程