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

Switch to Plain View
Avro >> mail # user >> using strings instead of utf8


+
Koert Kuipers 2012-10-19, 21:57
Copy link to this message
-
Re: using strings instead of utf8
On Fri, Oct 19, 2012 at 2:57 PM, Koert Kuipers <[EMAIL PROTECTED]> wrote:
> how do i tell (generic) avro to use strings for values instead of it's own
> utf8 class?
>
> i saw a way of doing it by modifying the schemas (adding a property). i also
> saw mention of a way to do it if you use maven (which i don't).

The property is "avro.java.string".  If the value is "String" then a
java.lang.String is returned.  In other words, if the reading schema
is {"type":"string", "avro.java.string":"String"} then String will be
returned instead of Utf8.

The Maven technique causes the specific compiler to emit this for all
String schemas.  This is done by adding
<stringType>String</stringType> to your pom.xml.

> is there a generic way to do this? like a system property perhaps? or a
> static method that i call to change the default?

No.  A static switch would break other applications that don't expect
this.  However one can override the readString() method in either the
Decoder or the DatumReader to achieve this.

Doug