@Override public LookupKV<EnrichmentKey, EnrichmentValue> get(EnrichmentKey key, HBaseContext context, boolean logAccess) throws IOException { return converter.fromResult(context.getTable().get(converter.toGet(getColumnFamily(context), key)), getColumnFamily(context)); }
public List<Put> toPut(String line , Extractor extractor , String cf , HbaseConverter converter ) throws IOException { List<Put> ret = new ArrayList<>(); Iterable<LookupKV> kvs = extractor.extract(line); for(LookupKV kv : kvs) { Put put = converter.toPut(cf, kv.getKey(), kv.getValue()); ret.add(put); } return ret; }
private List<Get> keysToGets(Iterable<KeyWithContext<EnrichmentKey, HBaseContext>> keys) { List<Get> ret = new ArrayList<>(); for(KeyWithContext<EnrichmentKey, HBaseContext> key : keys) { ret.add(converter.toGet(getColumnFamily(key.getContext()), key.getKey())); } return ret; }
@Override public Iterable<LookupKV<EnrichmentKey, EnrichmentValue>> get( Iterable<KeyWithContext<EnrichmentKey, HBaseContext>> keys , boolean logAccess ) throws IOException { if(Iterables.isEmpty(keys)) { return Collections.emptyList(); } HTableInterface table = Iterables.getFirst(keys, null).getContext().getTable(); List<LookupKV<EnrichmentKey, EnrichmentValue>> ret = new ArrayList<>(); Iterator<KeyWithContext<EnrichmentKey, HBaseContext>> keyWithContextIterator = keys.iterator(); for(Result result : table.get(keysToGets(keys))) { HBaseContext context = keyWithContextIterator.next().getContext(); ret.add(converter.fromResult(result, getColumnFamily(context))); } return ret; }
@Override public boolean exists(EnrichmentKey key, HBaseContext context, boolean logAccess) throws IOException { return context.getTable().exists(converter.toGet(getColumnFamily(context), key)); }
@Override public void map(Object key, Text value, Context context) throws IOException, InterruptedException { for(LookupKV results : extractor.extract(value.toString())) { if (results != null) { Put put = converter.toPut(columnFamily, results.getKey(), results.getValue()); write(new ImmutableBytesWritable(results.getKey().toBytes()), put, context); } } }