@Override public SplitReader<K, V> createSplitReader(Split split) { return new ForwardingSplitReader<K, V>(delegate.createSplitReader(split)) { @Override public void close() { try { try { super.close(); } finally { flushOperations(); } } catch (Exception e) { throw Throwables.propagate(e); } } }; } };
@Override public SplitReader<K, V> createSplitReader(Split split) { return new ForwardingSplitReader<K, V>(delegate.createSplitReader(split)) { @Override public void close() { try { try { super.close(); } finally { flushOperations(); } } catch (Exception e) { throw Throwables.propagate(e); } } }; } };
@Override public RecordReader<KEY, VALUE> createRecordReader(InputSplit split, TaskAttemptContext context) throws IOException, InterruptedException { DataSetInputSplit inputSplit = (DataSetInputSplit) split; Configuration conf = context.getConfiguration(); String datasetNamespace = conf.get(DATASET_NAMESPACE); String datasetName = conf.get(DATASET_NAME); Map<String, String> datasetArgs = GSON.fromJson(conf.get(DATASET_ARGS), DATASET_ARGS_TYPE); @SuppressWarnings("unchecked") BatchReadable<KEY, VALUE> batchReadable = createBatchReadable(context, datasetNamespace, datasetName, datasetArgs); SplitReader<KEY, VALUE> splitReader = batchReadable.createSplitReader(inputSplit.getSplit()); return new SplitReaderRecordReader<>(splitReader); }
@Override public RecordReader<KEY, VALUE> createRecordReader(InputSplit split, TaskAttemptContext context) throws IOException, InterruptedException { DataSetInputSplit inputSplit = (DataSetInputSplit) split; Configuration conf = context.getConfiguration(); String datasetNamespace = conf.get(DATASET_NAMESPACE); String datasetName = conf.get(DATASET_NAME); Map<String, String> datasetArgs = GSON.fromJson(conf.get(DATASET_ARGS), DATASET_ARGS_TYPE); @SuppressWarnings("unchecked") BatchReadable<KEY, VALUE> batchReadable = createBatchReadable(context, datasetNamespace, datasetName, datasetArgs); SplitReader<KEY, VALUE> splitReader = batchReadable.createSplitReader(inputSplit.getSplit()); return new SplitReaderRecordReader<>(splitReader); }