Great! Thanks for the great support Stephan

On Thu, May 21, 2015 at 2:22 PM, Stephan Ewen <se...@apache.org> wrote:

> Hi!
>
> It seems that the  "project()" operator wants to write an empty instance
> of type "Person" as part of the object, which is not possible for thrift.
>
> We can remove that instance, since it is not really needed. It was
> intended to be a reusable object instance, but it has become obsolete.
>
> Stephan
>
>
> On Thu, May 21, 2015 at 12:56 PM, Flavio Pompermaier <pomperma...@okkam.it
> > wrote:
>
>> Hi to all,
>> I'm using a code that basically is originated from the Flink-Parquet
>> example at
>> https://github.com/FelixNeutatz/parquet-flinktacular/blob/master/java/thrift/flink/src/main/java/flink/parquet/ParquetThriftExample.java
>> .
>>
>>
>> If I do the following everything works fine:
>>
>> DataSet<Tuple2<Void, Person>> input = readThrift(env, "newpath");
>> input.print();
>>
>>
>> But If do:
>>
>> DataSet<Tuple2<Void, Person>> input = readThrift(env, "newpath");
>> input.project(1).print();
>>
>> I get this exception:
>>
>>
>> Exception in thread "main" org.apache.flink.optimizer.CompilerException:
>> Error translating node 'Map "Projection [1]" : MAP [[ GlobalProperties
>> [partitioning=RANDOM_PARTITIONED] ]] [[ LocalProperties [ordering=null,
>> grouped=null, unique=null] ]]': Could not write the user code wrapper class
>> org.apache.flink.api.common.operators.util.UserCodeObjectWrapper :
>> java.io.IOException: org.apache.thrift.protocol.TProtocolException:
>> Required field 'name' was not present! Struct: Person(name:null, id:0,
>> phone:null)
>>
>> at
>> org.apache.flink.optimizer.plantranslate.JobGraphGenerator.preVisit(JobGraphGenerator.java:360)
>>
>> at
>> org.apache.flink.optimizer.plantranslate.JobGraphGenerator.preVisit(JobGraphGenerator.java:103)
>>
>> at
>> org.apache.flink.optimizer.plan.SingleInputPlanNode.accept(SingleInputPlanNode.java:198)
>>
>> at
>> org.apache.flink.optimizer.plan.SingleInputPlanNode.accept(SingleInputPlanNode.java:199)
>>
>> at
>> org.apache.flink.optimizer.plan.OptimizedPlan.accept(OptimizedPlan.java:127)
>>
>> at
>> org.apache.flink.optimizer.plantranslate.JobGraphGenerator.compileJobGraph(JobGraphGenerator.java:170)
>>
>> at
>> org.apache.flink.client.LocalExecutor.executePlan(LocalExecutor.java:176)
>>
>> at
>> org.apache.flink.api.java.LocalEnvironment.execute(LocalEnvironment.java:54)
>>
>> at flink.parquet.ParquetThriftExample.main(ParquetThriftExample.java:70)
>>
>> Caused by:
>> org.apache.flink.runtime.operators.util.CorruptConfigurationException:
>> Could not write the user code wrapper class
>> org.apache.flink.api.common.operators.util.UserCodeObjectWrapper :
>> java.io.IOException: org.apache.thrift.protocol.TProtocolException:
>> Required field 'name' was not present! Struct: Person(name:null, id:0,
>> phone:null)
>>
>> at
>> org.apache.flink.runtime.operators.util.TaskConfig.setStubWrapper(TaskConfig.java:275)
>>
>> at
>> org.apache.flink.optimizer.plantranslate.JobGraphGenerator.createSingleInputVertex(JobGraphGenerator.java:803)
>>
>> at
>> org.apache.flink.optimizer.plantranslate.JobGraphGenerator.preVisit(JobGraphGenerator.java:305)
>>
>> ... 8 more
>>
>> Caused by: java.io.IOException:
>> org.apache.thrift.protocol.TProtocolException: Required field 'name' was
>> not present! Struct: Person(name:null, id:0, phone:null)
>>
>> at flink.parquet.thrift.Person.writeObject(Person.java:641)
>>
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>
>> at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.lang.reflect.Method.invoke(Method.java:606)
>>
>> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
>>
>> at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
>>
>> at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
>>
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
>>
>> at
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
>>
>> at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
>>
>> at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
>>
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
>>
>> at
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
>>
>> at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
>>
>> at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
>>
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
>>
>> at
>> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
>>
>> at
>> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
>>
>> at
>> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
>>
>> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
>>
>> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
>>
>> at
>> org.apache.flink.util.InstantiationUtil.serializeObject(InstantiationUtil.java:314)
>>
>> at
>> org.apache.flink.util.InstantiationUtil.writeObjectToConfig(InstantiationUtil.java:268)
>>
>> at
>> org.apache.flink.runtime.operators.util.TaskConfig.setStubWrapper(TaskConfig.java:273)
>>
>> ... 10 more
>>
>> Caused by: org.apache.thrift.protocol.TProtocolException: Required field
>> 'name' was not present! Struct: Person(name:null, id:0, phone:null)
>>
>> at flink.parquet.thrift.Person.validate(Person.java:632)
>>
>> at flink.parquet.thrift.Person.write(Person.java:557)
>>
>> at flink.parquet.thrift.Person.writeObject(Person.java:639)
>>
>> ... 34 more
>> Thanks in advance,
>> Flavio
>>
>>
>>
>

Reply via email to