I have just started to try using the Join operators.

The join I am trying is this;
join is outer(tbl(org.apache.hadoop.mapred.SequenceFileInputFormat,"Input1"),tbl(org.apache.hadoop.mapred.SequenceFileInputFormat,"IndexedTry1"))

but I get an error
08/06/30 08:55:13 INFO mapred.FileInputFormat: Total input paths to process : 10 Exception in thread "main" java.io.IOException: No input paths specified in input at org.apache.hadoop.mapred.FileInputFormat.validateInput(FileInputFormat.java:115)
   at org.apache.hadoop.mapred.join.Parser$WNode.getSplits(Parser.java:304)
   at org.apache.hadoop.mapred.join.Parser$CNode.getSplits(Parser.java:375)
at org.apache.hadoop.mapred.join.CompositeInputFormat.getSplits(CompositeInputFormat.java:131)
   at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:544)

I am clearly missing something basic...

       conf.setInputFormat(CompositeInputFormat.class);
       conf.setOutputPath( outputDirectory );
       conf.setOutputKeyClass(Text.class);
       conf.setOutputValueClass(Text.class);
       conf.setOutputFormat(MapFileOutputFormat.class);
       conf.setMapperClass( LeftHandJoinMapper.class );
       conf.setReducerClass( IdentityReducer.class );
       conf.setNumReduceTasks(0);

System.err.println( "join is " + CompositeInputFormat.compose("outer", SequenceFileInputFormat.class, allTables ) ); conf.set("mapred.join.expr", CompositeInputFormat.compose("outer", SequenceFileInputFormat.class, allTables )); JobClient client = new JobClient(); client.setConf( conf );

       RunningJob job = JobClient.runJob( conf );



Shirley Cohen wrote:
Hi,

How does one do a join operation in map reduce? Is there more than one way to do a join? Which way works better and why?

Thanks,

Shirley
--
Jason Venner
Attributor - Program the Web <http://www.attributor.com/>
Attributor is hiring Hadoop Wranglers and coding wizards, contact if interested

Reply via email to