final AccumuloConfiguration acuConf = getAccumuloConfiguration(context);
final String extension = acuConf.get(Property.TABLE_FILE_TYPE);
final Path file = this.getDefaultWorkFile(context, "." + extension);
final LRUMap validVisibilities = new LRUMap(1000);
return new RecordWriter<Key,Value>() {
FileSKVWriter out = null;
@Override
public void close(TaskAttemptContext context) throws IOException {
if (out != null)
out.close();
}
@Override
public void write(Key key, Value value) throws IOException {
Boolean wasChecked = (Boolean) validVisibilities.get(key.getColumnVisibilityData());
if (wasChecked == null) {
byte[] cv = key.getColumnVisibilityData().toArray();
new ColumnVisibility(cv);
validVisibilities.put(new ArrayByteSequence(Arrays.copyOf(cv, cv.length)), Boolean.TRUE);
}
if (out == null) {
out = FileOperations.getInstance().openWriter(file.toString(), file.getFileSystem(conf), conf, acuConf);
out.startDefaultLocalityGroup();