Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
MapReduce, mail # user - Reading SequenceFiles throws Wrong key class r


Copy link to this message
-
Re: Reading SequenceFiles throws Wrong key class r
Harsh J 2012-11-06, 05:49
SequenceFiles unfortunately store the fully qualified classnames into
the serialized header. If you are "evolving" your classes to move to
another package, like you have done so by moving down into an io.*
package, you'll have to gracefully do it, by keeping the original
class, marked deprecated but extending the new location.

Otherwise, you need a utility that can hackily or elegantly migrate
the files to their new classname.

On Tue, Nov 6, 2012 at 9:42 AM, Saptarshi Guha <[EMAIL PROTECTED]> wrote:
> Hello,
>
> Sorry for the vague subject ....
>
> I am writing some code using CDH 0.20.2-cdh3u4 to read RHBytesWritable
> from a file(F) on the HDFS.
>
> (1) The key/values present in F are class org.godhuli.rhipe.
>
> RHBytesWritable
>
> I am restructuring my code, so now, RHBytesWritable is in
> org.godhuli.rhipe.io.RHBytesWritable.
>
> Using this new refactored code, the following code throws this exception
>
> wrong key class: org.godhuli.rhipe.io.RHBytesWritable is not class
> org.godhuli.rhipe.RHBytesWritable
>
> Object k=new Object();
> Object v=new Object();
> SequenceFile.Reader sqr = new SequenceFile.Reader(FileSystem.get(cfg) ,new
> Path(pathname), cfg);
> while( (nummax > 0 && count < nummax) || (nummax <=0 )){
>     k = sqr.next(k);
>     v = sqr.getCurrentValue(v);
>     ....
> }
>
> So what options do i have left? Have a routine that copies
> rhipe.RHB... to rhipe.io.RHBy.... ?

--
Harsh J