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

Switch to Threaded View
Avro, mail # user - Unable to compile a namespace-less schema


Copy link to this message
-
Re: Unable to compile a namespace-less schema
Vitaly Gordon 2013-10-11, 23:40
Thanks Doug. That does seem to compile the schema, unfortunately however, I
am still unable to read the record.

Exception in thread "main" org.apache.avro.AvroTypeException: Found
TUPLE_21, expecting union

Have you managed to read the record?
On Fri, Oct 11, 2013 at 2:43 PM, Doug Cutting <[EMAIL PROTECTED]> wrote:

> Thanks for the complete example.  I can get this to compile by
> removing the "package com.company" from Main.java.
>
> The Java specification says, "It is a compile time error to import a
> type from the unnamed package."  So you'll only be able to use these
> classes from other classes in the unnamed package, which isn't very
> useful.
>
> You can add a namespace to your .avsc file, and alias it to the
> non-namespaced version so that it still matches, e,g:
>
>   ..., "name":"com.company.TUPLE_20", "alias":".TUPLE_20", ...
>
> That gets things to compile for me without removing the package in
> your Main.java.
>
> Doug
>
> On Fri, Oct 11, 2013 at 1:59 PM, Vitaly Gordon <[EMAIL PROTECTED]> wrote:
> > Hi Doug,
> > I've attached a maven project that contains code that shows the problem.
> > The code is basically the same one from the Avro guide, but what is
> > important to observe is that since the Main class has a package define,
> it
> > cannot import the classes generated from the namespace-less schema.
> >
> > just run mvn:compile to get the compilation errors
> >
> > Thanks,
> > Vitaly
> >
> >
> > On Thu, Oct 10, 2013 at 1:58 PM, Doug Cutting <[EMAIL PROTECTED]>
> wrote:
> >>
> >> I encourage you to please provide a complete test, code that fails.
> >> If maven is involved, create a simple, Maven project that illustrates
> >> the problem.
> >>
> >> Thanks,
> >>
> >> Doug
> >>
> >> On Wed, Oct 9, 2013 at 11:21 PM, Vitaly Gordon <[EMAIL PROTECTED]>
> wrote:
> >> > Hi Doug,
> >> > You are right, the code does compile with javac. Apparently it is some
> >> > maven
> >> > error, where it doesn't like to compile package-less files.
> >> >
> >> > Having said that, I still have the issue of not being able to use
> these
> >> > java
> >> > files in my code, because there is no way to import them. One thing I
> >> > tried
> >> > that sometimes work is adding some arbitrary namespace to the avro
> >> > schema.
> >> > However, when I try to read records using the new (with namespace)
> >> > schema, I
> >> > get in return a generic record instead of a specific one. This
> behavior
> >> > can
> >> > be observed in the same file I attached by adding an arbitrary
> namespace
> >> > to
> >> > the schema before generating the Java classes from it.
> >> >
> >> > Is there any way to read specific records when the schema that was
> used
> >> > to
> >> > write them contains no namespace?
> >> >
> >> > Thanks,
> >> > Vitaly
> >> >
> >> >
> >> > On Wed, Oct 9, 2013 at 6:07 PM, Doug Cutting <[EMAIL PROTECTED]>
> wrote:
> >> >>
> >> >> Using the current trunk of Avro I am able to:
> >> >>  - extract the schema from the data file you provided (using
> >> >> avro-tools schema command)
> >> >>  - generate Java classes for this schema (using the avro-tools
> compile
> >> >> command)
> >> >>  - compile these generated Java classes (using the javac command)
> >> >>
> >> >> Can you provide a complete case of what fails for you?
> >> >>
> >> >> Thanks,
> >> >>
> >> >> Doug
> >> >>
> >> >> On Wed, Oct 9, 2013 at 4:56 PM, Vitaly Gordon <[EMAIL PROTECTED]>
> >> >> wrote:
> >> >> > Does anyone else might have an idea how I can resolve this
> >> >> > "namespace-less"
> >> >> > Avro schema code generation?
> >> >> >
> >> >> > Thanks,
> >> >> > Vitaly
> >> >> >
> >> >> >
> >> >> > On Mon, Oct 7, 2013 at 2:04 PM, Vitaly Gordon <[EMAIL PROTECTED]>
> >> >> > wrote:
> >> >> >>
> >> >> >> Hi Sean,
> >> >> >> Here is a file that contains a single record that I cannot read
> >> >> >> using a
> >> >> >> specific reader.
> >> >> >>
> >> >> >> It's hard for me to add code because the problem is a compilation
> >> >> >> problem
> >> >> >> with the generated Java files.