Jihed JOOBEUR created CRUNCH-657: ------------------------------------ Summary: Can't activate Snappy compression with AvroPathPerKeyTarget Key: CRUNCH-657 URL: https://issues.apache.org/jira/browse/CRUNCH-657 Project: Crunch Issue Type: Bug Components: IO Affects Versions: 0.11.0 Environment: Cloudera Reporter: Jihed JOOBEUR
Compress.snappy(AvroPathPerKeyTarget) does'nt work. I needed to create my own class who extends AvroPathPerKeyTarget. {code:java} public class CompressedAvroPathPerKeyTarget extends AvroPathPerKeyTarget { private Map<String, String> extraConf = Maps.newHashMap(); public CompressedAvroPathPerKeyTarget(Path path) { super(path); } @Override public Target outputConf(String key, String value) { extraConf.put(key, value); return this; } @Override public void configureForMapReduce(Job job, PType<?> ptype, Path outputPath, String name) { AvroType<?> atype = (AvroType) ((PTableType) ptype).getValueType(); FormatBundle bundle = FormatBundle.forOutput(AvroPathPerKeyOutputFormat.class); String schemaParam; if (name == null) { schemaParam = "avro.output.schema"; } else { schemaParam = "avro.output.schema." + name; } for (Map.Entry<String, String> e : extraConf.entrySet()) { bundle.set(e.getKey(), e.getValue()); } bundle.set(schemaParam, atype.getSchema().toString()); AvroMode.fromType(atype).configure(bundle); configureForMapReduce(job, AvroWrapper.class, NullWritable.class, bundle, outputPath, name); } } {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)