Furthermore, Text is meant for use when you have a UTF8-encoded string.
Creating a Text object from a byte array that is not proper UTF-8 is likely
to result in some kind of exception or data mangling. You should use
BytesWritable for this purpose

-Todd

2009/12/28 Edward Capriolo <[email protected]>

> Calling bitArray.toString() does not return your data. You can test
> this in a standalong program.
> You need to write the array out bitwise or byte wise. toString() does
> not do what you want.
>
> Edward
>
> 2009/12/28 Gang Luo <[email protected]>:
> > Hi all,
> > I don't know too much about text coding and there is one thing confusing
> me. I am implementing the bloom filter in mapreduce. The output is a bit
> array (implemented as byte[ ]) and the length is 2 exp 24 (that means,
> 2exp21 bytes). The size of the array should be 2 mb. But when I output it
> like this: output.collect(new Text(bitArray.toString()), null); the output
> file is only 10 bytes. The content of the output file is something like
> this: [...@1c695a6. What does Text do when I generate a new Text object
> using the bitArray (which is byte[ ])?
> >
> > The amazing thing is, when I use Text.getBytes() to convert it back to
> byte[ ], it is exactly the same as before! How does it get the 2 mb
> information by the 10 bytes Text object (the value of which is [...@1c695a6
> )?
> >
> > Thanks.
> >
> >  -Gang
> >
> >
> >      ___________________________________________________________
> >  好玩贺卡等你发,邮箱贺卡全新上线!
> > http://card.mail.cn.yahoo.com/
> >
>

Reply via email to