String outputDataSet = outputDataSetElem == null ? null : outputDataSetElem.getAsString();
Set<String> dataSets = deserializeSet(jsonObj.get("datasets"), context, String.class);
Map<String, String> properties = deserializeMap(jsonObj.get("properties"), context, String.class);
return new DefaultMapReduceSpecification(className, name, description, inputDataSet, outputDataSet,
dataSets, properties, mapperMemoryMB, reducerMemoryMB);
}