Hi Guys,

@Ingo Bürk <i...@ververica.com> Thanks for that, but I need this function
sooner rather than later. Would be happy to contribute it back once I get
it to work :)
@Caizhi Weng <tsreape...@gmail.com> The gist was not in the correct
version. I can't return an Array[T] since it will always be an
Array[Object] at runtime, and that's not what I want. I'm actually
returning ArrayData (more specifically, a GenericArrayData). But for
GenericArrayData the type of the array must be an internal one, and not
external. In order to do this, I need access to something like
DataStructureConverters
<https://github.com/apache/flink/blob/master/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/data/conversion/DataStructureConverters.java>
but
I can't calculate the type at runtime, I'd need this injected somehow in
the TypeInference stage.

On Tue, Aug 24, 2021 at 9:38 AM Ingo Bürk <i...@ververica.com> wrote:

> Hi,
>
> just FYI, we do already have issues in JIRA for this:
> * https://issues.apache.org/jira/browse/FLINK-21949
> * https://issues.apache.org/jira/browse/FLINK-22484
>
>
> Best
> Ingo
>
> On Tue, Aug 24, 2021 at 8:23 AM Caizhi Weng <tsreape...@gmail.com> wrote:
>
>> Hi!
>>
>> As far as I know, returning an array from the getValue method containing
>> external data format is OK. Flink will do the conversion for you.
>>
>> Are you faced with any exception when using this array_agg? If yes what's
>> the exception stack?
>>
>> You can also open a JIRA ticket to require a built-in support for
>> array_agg, as this function exists in many data ware houses.
>>
>> Yuval Itzchakov <yuva...@gmail.com> 于2021年8月23日周一 下午7:38写道:
>>
>>> Hi,
>>>
>>> I'm trying to implement a generic ARRAY_AGG UDF function (identical to
>>> the one that exists in many data WHs, e.g
>>> https://docs.snowflake.com/en/sql-reference/functions/array_agg.html)
>>> to utilize in Flink SQL.
>>>
>>> Taking reference from CollectAggFunction
>>> <https://github.com/apache/flink/blob/master/flink-table/flink-table-planner/src/main/java/org/apache/flink/table/planner/functions/aggfunctions/CollectAggFunction.java>,
>>> I tried using ArrayData to generate a GenericArrayData as an output type.
>>> The problem with is I need a way to convert from the external format being
>>> used in the UDF (e.g String, Integer) to the internal representation
>>> required by Flink (i.e. StringData). I haven't found a straight way of
>>> going about that.
>>>
>>> Here is a gist of the implementation
>>> <https://gist.github.com/YuvalItzchakov/5cc7b076d31d73e5c1f9b7b72b3c624b>
>>> .
>>> Would appreciate any help on how to tackle this.
>>>
>>> --
>>> Best Regards,
>>> Yuval Itzchakov.
>>>
>>

-- 
Best Regards,
Yuval Itzchakov.

Reply via email to