@Override public void handleExisting(WriteMode strategy, Configuration conf) { target.handleExisting(strategy, conf); } }
@Override public boolean handleExisting(WriteMode strategy, long lastModifiedAt, Configuration conf) { return target.handleExisting(strategy, lastModifiedAt, conf); }
@Override public void write(PCollection<?> collection, Target target, Target.WriteMode writeMode) { target.handleExisting(writeMode, -1, getConfiguration()); if (writeMode != Target.WriteMode.APPEND && activeTargets.contains(target)) { throw new CrunchRuntimeException("Target " + target
@Override public void write(PCollection<?> collection, Target target, Target.WriteMode writeMode) { target.handleExisting(writeMode, getConfiguration()); if (writeMode != WriteMode.APPEND && activeTargets.contains(target)) { throw new CrunchRuntimeException("Target " + target + " is already written in the current run." +
@SuppressWarnings("unchecked") public void write(PCollection<?> pcollection, Target target, Target.WriteMode writeMode) { if (pcollection instanceof PGroupedTableImpl) { pcollection = ((PGroupedTableImpl<?, ?>) pcollection).ungroup(); } else if (pcollection instanceof UnionCollection || pcollection instanceof UnionTable) { pcollection = pcollection.parallelDo("UnionCollectionWrapper", (MapFn) IdentityFn.<Object> getInstance(), pcollection.getPType()); } target.handleExisting(writeMode, getConfiguration()); if (writeMode != WriteMode.APPEND && targetInCurrentRun(target)) { throw new CrunchRuntimeException("Target " + target + " is already written in current run." + " Use WriteMode.APPEND in order to write additional data to it."); } addOutput((PCollectionImpl<?>) pcollection, target); }
@SuppressWarnings("unchecked") public void write(PCollection<?> pcollection, Target target, Target.WriteMode writeMode) { if (pcollection instanceof BaseGroupedTable) { pcollection = ((BaseGroupedTable<?, ?>) pcollection).ungroup(); } else if (pcollection instanceof BaseUnionCollection || pcollection instanceof BaseUnionTable) { pcollection = pcollection.parallelDo("UnionCollectionWrapper", (MapFn) IdentityFn.<Object> getInstance(), pcollection.getPType()); } boolean exists = target.handleExisting(writeMode, ((PCollectionImpl) pcollection).getLastModifiedAt(), getConfiguration()); if (exists && writeMode == Target.WriteMode.CHECKPOINT) { SourceTarget<?> st = target.asSourceTarget(pcollection.getPType()); if (st == null) { throw new CrunchRuntimeException("Target " + target + " does not support checkpointing"); } else { ((PCollectionImpl) pcollection).materializeAt(st); } return; } else if (writeMode != Target.WriteMode.APPEND && targetInCurrentRun(target)) { throw new CrunchRuntimeException("Target " + target + " is already written in current run." + " Use WriteMode.APPEND in order to write additional data to it."); } // Need special handling for append targets in the case of materialization if (writeMode == Target.WriteMode.APPEND) { appendedTargets.add(target); } addOutput((PCollectionImpl<?>) pcollection, target); }