Hi Flavio!

The latest master should have a fix for the problem.

The issue is tracked here: https://issues.apache.org/jira/browse/FLINK-2071

Greetings,
Stephan


On Thu, May 21, 2015 at 2:24 PM, Flavio Pompermaier <pomperma...@okkam.it>
wrote:

> 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