我正在处理HBase map reduce作业,需要了解单个列系列中的列是否按名称(键)返回。如果是这样,我不需要在随机排序阶段进行。
由于
答案 0 :(得分:1)
我有一个非常相似的数据模型。但是,插入后,我为Put对象设置了自己的时间戳值。但是,我这样做是为了获取当前时间的“种子”并为我在批处理中保留的每个事件添加一个递增计数器。
当我从扫描中取出结果时,我写了一个比较器:
public class KVTimestampComparator implements Comparator<KeyValue> {
@Override
public int compare(KeyValue kv1, KeyValue kv2) {
Long kv1Timestamp = kv1.getTimestamp();
Long kv2Timestamp = kv2.getTimestamp();
return kv1Timestamp.compareTo(kv2Timestamp);
}
}
然后对原始行进行排序:
List<KeyValue> row = Arrays.asList(result.raw());
Collections.sort(row, new KVTimestampComparator());
从回答这个问题的人那里得到了这个想法:Sorted results from hbase scanner
答案 1 :(得分:-1)
不,列没有排序 它们在内部存储为长字节数组中的键值对。但是,你应该澄清你的实际需要的问题。