以下は私のテーブルです(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'
;