use of com.airbnb.airpal.api.output.HiveTablePersistentOutput in project airpal by airbnb.
the class ExecutionClient method jobFinished.
protected void jobFinished(Job job) {
job.setQueryFinished(new DateTime());
activeJobsStore.jobFinished(job);
historyStore.addRun(job);
for (Table t : job.getTablesUsed()) {
usageStore.markUsage(t);
}
if (job.getOutput() instanceof HiveTablePersistentOutput && job.getOutput().getLocation() != null) {
String[] parts = job.getOutput().getLocation().toString().split("\\.");
if (parts.length == 2) {
Map<String, List<String>> cache = schemaCache.getSchemaMap("hive");
List<String> tables = cache.get(parts[0]);
tables.add(parts[1]);
}
}
eventBus.post(new JobFinishedEvent(job));
executionMap.remove(job.getUuid());
}
use of com.airbnb.airpal.api.output.HiveTablePersistentOutput in project airpal by airbnb.
the class OutputBuilderFactory method forJob.
public JobOutputBuilder forJob(Job job) throws IOException, InvalidQueryException {
PersistentJobOutput output = job.getOutput();
switch(output.getType()) {
case "csv":
return new CsvOutputBuilder(true, job.getUuid(), maxFileSizeBytes, isCompressedOutput);
case "hive":
HiveTablePersistentOutput hiveOutput = (HiveTablePersistentOutput) output;
URI location = output.getLocation();
if (location == null) {
throw new InvalidQueryException(format("Invalid table name '%s'", hiveOutput.getTmpTableName()));
}
return new HiveTableOutputBuilder(hiveOutput.getDestinationSchema(), hiveOutput.getTmpTableName());
default:
throw new IllegalArgumentException(format("OutputBuilder for type %s not found", output.getType()));
}
}
Aggregations