// ... irrelevant computations here
12/07/11 18:42:57 ERROR stream.TrapHandler: caught Throwable, no trap available, rethrowing
cascading.tuple.TupleException: unable to read from input identifier: ../scalding-test/0905.dat-1341835200652.lzo
at cascading.tuple.TupleEntrySchemeIterator.hasNext(TupleEntrySchemeIterator.java:127)
at cascading.flow.stream.SourceStage.map(SourceStage.java:76)
at cascading.flow.stream.SourceStage.call(SourceStage.java:53)
at cascading.flow.stream.SourceStage.call(SourceStage.java:38)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: cascading.tap.TapException: did not parse correct number of values from input data, expected: 5, got: 1:?LZO
at cascading.scheme.util.DelimitedParser.parseLine(DelimitedParser.java:264)
at cascading.scheme.local.TextDelimited.source(TextDelimited.java:461)
at cascading.tuple.TupleEntrySchemeIterator.getNext(TupleEntrySchemeIterator.java:140)
at cascading.tuple.TupleEntrySchemeIterator.hasNext(TupleEntrySchemeIterator.java:120)
... 8 more
package com.stumbleupon.cascading2.scheme;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.RecordReader;
import com.twitter.elephantbird.mapred.input.DeprecatedLzoTextInputFormat;
import com.twitter.elephantbird.mapred.output.DeprecatedLzoTextOutputFormat;
import cascading.flow.FlowProcess;
import cascading.scheme.local.TextDelimited;
import cascading.tap.Tap;
import cascading.tuple.Fields;
/**
* Copied from Ning Lang's LzoTextDelimited extending hadoop's TextDelimited
* Scheme for LZO encoded TSV files.
*
*/
public class LzoTextDelimited extends TextDelimited {
public LzoTextDelimited(Fields fields, String delimiter) {
super(fields, delimiter);
}
public LzoTextDelimited(Fields fields, boolean skipHeader, String delimiter) {
super(fields, skipHeader, delimiter);
}
public LzoTextDelimited(Fields fields, String delimiter, Class[] types) {
super(fields, delimiter, types);
}
public LzoTextDelimited(Fields fields, boolean skipHeader, String delimiter, Class[] types) {
super(fields, skipHeader, delimiter, types);
}
public LzoTextDelimited(Fields fields, boolean skipHeader, boolean skipWriteHeader, String delimiter, Class[] types) {
super(fields, skipHeader, skipWriteHeader, delimiter, types);
}
public LzoTextDelimited(Fields fields, String delimiter, String quote, Class[] types) {
super(fields, delimiter, quote, types);
}
public LzoTextDelimited(Fields fields, boolean skipHeader, String delimiter,
String quote, Class[] types) {
super(fields, skipHeader, delimiter, quote, types);
}
public LzoTextDelimited(Fields fields, String delimiter,
String quote, Class[] types, boolean safe) {
super(fields, delimiter, quote, types, safe);
}
public LzoTextDelimited(Fields fields, boolean skipHeader, String delimiter,
String quote, Class[] types, boolean safe) {
super(fields, skipHeader, delimiter, quote, types, safe);
}
public LzoTextDelimited(Fields fields, String delimiter, String quote) {
super(fields, delimiter, quote);
}
public LzoTextDelimited(Fields fields, boolean skipHeader, String delimiter, String quote) {
super(fields, skipHeader, delimiter, quote);
}
public void sourceConfInit(FlowProcess<JobConf> flowProcess, Tap<JobConf, RecordReader, OutputCollector> tap, JobConf conf ) {
conf.setInputFormat(DeprecatedLzoTextInputFormat.class);
}
public void sinkConfInit(FlowProcess<JobConf> flowProcess, Tap<JobConf, RecordReader, OutputCollector> tap, JobConf conf ) {
conf.setOutputFormat(DeprecatedLzoTextOutputFormat.class);
}
}