use of co.cask.cdap.api.data.batch.Output in project cdap by caskdata.
the class MapReduceBatchContext method addOutput.
@Override
public void addOutput(final Output output) {
final Output actualOutput = suffixOutput(getOutput(output));
Output trackableOutput = caller.callUnchecked(new Callable<Output>() {
@Override
public Output call() throws Exception {
Output trackableOutput = isPreviewEnabled ? actualOutput : ExternalDatasets.makeTrackable(mrContext.getAdmin(), actualOutput);
mrContext.addOutput(trackableOutput);
return trackableOutput;
}
});
outputNames.add(trackableOutput.getAlias());
}
use of co.cask.cdap.api.data.batch.Output in project cdap by caskdata.
the class SparkBatchSinkContext method addOutput.
@Override
public void addOutput(Output output) {
Output actualOutput = suffixOutput(getOutput(output));
Output trackableOutput = isPreviewEnabled ? actualOutput : ExternalDatasets.makeTrackable(admin, actualOutput);
sinkFactory.addOutput(getStageName(), trackableOutput);
}
use of co.cask.cdap.api.data.batch.Output in project cdap by caskdata.
the class MockExternalSink method prepareRun.
@Override
public void prepareRun(BatchSinkContext context) throws Exception {
OutputFormatProvider outputFormatProvider = new OutputFormatProvider() {
@Override
public String getOutputFormatClassName() {
return TextOutputFormat.class.getCanonicalName();
}
@Override
public Map<String, String> getOutputFormatConfiguration() {
return ImmutableMap.of(TextOutputFormat.OUTDIR, config.dirName);
}
};
if (config.name != null) {
Output output = Output.of(config.name, outputFormatProvider);
output.alias(config.alias);
context.addOutput(output);
} else {
context.addOutput(config.alias, outputFormatProvider);
}
}
use of co.cask.cdap.api.data.batch.Output in project cdap by caskdata.
the class BasicMapReduceContext method addOutput.
@Override
public void addOutput(Output output) {
if (output instanceof Output.DatasetOutput) {
Output.DatasetOutput datasetOutput = ((Output.DatasetOutput) output);
String datasetNamespace = datasetOutput.getNamespace();
if (datasetNamespace == null) {
datasetNamespace = getNamespace();
}
String datasetName = output.getName();
Map<String, String> arguments = ((Output.DatasetOutput) output).getArguments();
// we can delay the instantiation of the Dataset to later, but for now, we still have to maintain backwards
// compatibility for the #setOutput(String, Dataset) method, so delaying the instantiation of this dataset will
// bring about code complexity without much benefit. Once #setOutput(String, Dataset) is removed, we can postpone
// this dataset instantiation
DatasetOutputFormatProvider outputFormatProvider = new DatasetOutputFormatProvider(datasetNamespace, datasetName, arguments, getDataset(datasetNamespace, datasetName, arguments, AccessType.WRITE), MapReduceBatchWritableOutputFormat.class);
addOutput(output.getAlias(), outputFormatProvider);
} else if (output instanceof Output.OutputFormatProviderOutput) {
addOutput(output.getAlias(), ((Output.OutputFormatProviderOutput) output).getOutputFormatProvider());
} else {
// shouldn't happen unless user defines their own Output class
throw new IllegalArgumentException(String.format("Output %s has unknown output class %s", output.getName(), output.getClass().getCanonicalName()));
}
}
Aggregations