Hmm... That should work.

Here is code from TOF:

    public void write(KEY key, Writable value)
    throws IOException {
      if (value instanceof Put) this.table.put(new Put((Put)value));
      else if (value instanceof Delete) this.table.delete(new
Delete((Delete)value));
      else throw new IOException("Pass a Delete or a Put");
    }


Maybe change the IOE... to something like:

      else throw new IOException("Pass a Delete or a Put rather than a " +
value);


...compile and retry.  Whats the exception look like?

We're squashing the type somehow or else context.write and
TOF#RecordWriter#write are not properly hooked up.

Thanks Travis,
St.Ack


On Sat, Jul 25, 2009 at 7:14 AM, Hegner, Travis <[email protected]>wrote:

> Hi All,
>
> I am getting the "Pass a Delete or a Put" exception from my reducer tasks
> (TableOutputFormat.java:96), even though I am actually passing a put...
>
>                        for(int i = 0; i < idList.size(); i++) {
>                                Put thisput = new
> Put(key.toString().getBytes());
>                                thisput.add("Positions".getBytes(),
> idList.get(i).toString().getBytes(), posList.get(i).toString().getBytes());
>                                context.write(key, thisput);
>                        }
>
> Is there anything wrong with this section of code from my reduce()?
>
> I have also tried casting the value with:
>
> context.write(key, (Put)thisput);
>
> Any Ideas?
>
> Travis Hegner
> http://www.travishegner.com/
>
> The information contained in this communication is confidential and is
> intended only for the use of the named recipient.  Unauthorized use,
> disclosure, or copying is strictly prohibited and may be unlawful.  If you
> have received this communication in error, you should know that you are
> bound to confidentiality, and should please immediately notify the sender or
> our IT Department at  866.459.4599.
>

Reply via email to