package itri;
// ITRI serial program number 5
// 0. after Itri4SortTurnover
// run it
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.tableindexed.IndexedTable;
import org.apache.hadoop.hbase.filter.CompareFilter;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.util.GenericOptionsParser;
public class Itri5ShowReport {
static public void readSortedValGreater(String filter_val)
throws IOException {
HBaseConfiguration conf = new HBaseConfiguration();
conf.addResource(new Path("/opt/hbase/conf/hbase-site.xml"));
// the id of the index to use
String tablename = "itri";
String indexId = "Sum";
byte[] column_1 = Bytes.toBytes("Turnover:Sum");
byte[] column_2 = Bytes.toBytes("Detail:Name");
byte[] indexStartRow = HConstants.EMPTY_START_ROW;
byte[] indexStopRow = null;
byte[][] indexColumns = null;
SingleColumnValueFilter indexFilter = new SingleColumnValueFilter(Bytes
.toBytes("Turnover"), Bytes.toBytes("Sum"),
CompareFilter.CompareOp.GREATER_OR_EQUAL, Bytes
.toBytes(filter_val));
byte[][] baseColumns = new byte[][] { column_1, column_2 };
IndexedTable table = new IndexedTable(conf, Bytes.toBytes(tablename));
ResultScanner scanner = table.getIndexedScanner(indexId, indexStartRow,
indexStopRow, indexColumns, indexFilter, baseColumns);
for (Result rowResult : scanner) {
String sum = Bytes.toString(rowResult.getValue(column_1));
String name = Bytes.toString(rowResult.getValue(column_2));
System.out.println(name + " 's turnover is " + sum + " $.");
}
table.close();
}
public static void main(String[] argv) throws IOException {
String[] args = new GenericOptionsParser(new Configuration(), argv)
.getRemainingArgs();
if (args.length < 1) {
System.out.println("Input the MIN number:");
return;
}
readSortedValGreater(args[0]);
}
}