flink-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dong-iL, Kim" <kim.s...@gmail.com>
Subject Re: Scala Table API with Java POJO
Date Mon, 01 Aug 2016 09:18:48 GMT
in org.apache.flink.api.table.plan.PlanTranslator.

val inputType = set.getType().asInstanceOf[CompositeType[A]]

if (!inputType.hasDeterministicFieldOrder && checkDeterministicFields) {
      throw new ExpressionException(s"You cannot rename fields upon Table creation: " +
        s"Field order of input type $inputType is not deterministic." )
    }

when A is a PojoType, hasDeterministicFieldOrder always returns false.

what shall I do using Pojo.
Thanks.

> On Aug 1, 2016, at 6:11 PM, Dong-iL, Kim <kim.same@gmail.com> wrote:
> 
> I’ve tried like this, but not work.
> 
> dataSet.as(‘id as ‘id, ‘amount as ‘amount)
> 
> dataSet.as(‘id, ‘amount)
> 
> dataSet.as(“id, amount”)
> 
> thanks.
> 
>> On Aug 1, 2016, at 6:03 PM, Timo Walther <twalthr@apache.org> wrote:
>> 
>> I think you need to use ".as()" instead of "toTable()" to supply the field order.
>> 
>> Am 01/08/16 um 10:56 schrieb Dong-iL, Kim:
>>> Hi Timo.
>>> I’m using scala API.
>>> There is no error with java API.
>>> my code snippet is this.
>>> 
>>> dataSet.toTable
>>>                .groupBy(“id")
>>>                .select(‘id, ‘amount.sum as ‘amount)
>>>                .where(‘amount > 0)
>>>                .toDataSet[TestPojo]
>>>                .print()
>>> 
>>> Thanks.
>>> 
>>>> On Aug 1, 2016, at 5:50 PM, Timo Walther <twalthr@apache.org> wrote:
>>>> 
>>>> Hi Kim,
>>>> 
>>>> as the exception says: POJOs have no deterministic field order. You have
to specify the order during the DataSet to Table conversion:
>>>> 
>>>> Table table = tableEnv.fromDataSet(pojoDataSet, "pojoField as a, pojoField2
as b");
>>>> 
>>>> I hope that helps. Otherwise it would help if you could supply a code snippet
of your program.
>>>> 
>>>> Timo
>>>> 
>>>> Am 01/08/16 um 10:19 schrieb Dong-iL, Kim:
>>>>> my flink ver is 1.0.3.
>>>>> thanks.
>>>>> 
>>>>>> On Aug 1, 2016, at 5:18 PM, Dong-iL, Kim <kim.same@gmail.com>
wrote:
>>>>>> 
>>>>>> I’ve create a program using table API and get an exception like
this.
>>>>>> org.apache.flink.api.table.ExpressionException: You cannot rename
fields upon Table creation: Field order of input type PojoType<….> is not deterministic.
>>>>>> There is an error not in java program, but in scala program.
>>>>>> how can I use java POJO with scala Table API.
>>>>>> 
>>>> 
>>>> -- 
>>>> Freundliche Grüße / Kind Regards
>>>> 
>>>> Timo Walther
>>>> 
>>>> Follow me: @twalthr
>>>> https://www.linkedin.com/in/twalthr
>>>> 
>> 
>> 
>> -- 
>> Freundliche Grüße / Kind Regards
>> 
>> Timo Walther
>> 
>> Follow me: @twalthr
>> https://www.linkedin.com/in/twalthr
>> 
> 


Mime
View raw message