下面是我的表(MyTable)
ID TotalCount ErrorCount DT
----------------------------------------------
1345653 5 3 20120709
534140349 5 2 20120709
601806615 5 1 20120709
682527813 4 3 20120709
687612723 3 2 20120709
704318001 5 4 20120709
1345653 5 2 20120710
704318001 1 0 20120710
1120784094 3 2 20120711
因此,如果我需要使用 HiveQL 在特定日期计算 Hive 中的错误百分比,那么我将这样做 -
SELECT 100 * sum(ErrorCount*1.0) / sum(TotalCount) FROM MyTable
where dt = '20120709';
但我需要使用Java MapReduce
. 有什么方法可以使用MapReduce in Java code
. 首先,每当我们用 Java 编写任何 MapReduce 作业时,我都会感到困惑,我们会读取该日期分区的相应文件?还是我们看表?
更新:- 下面是包含上述场景的表名
create table lipy
( buyer_id bigint,
total_chkout bigint,
total_errpds bigint
)
partitioned by (dt string)
row format delimited fields terminated by '\t'
stored as sequencefile
location '/apps/hdmi-technology/lipy'
;