You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Greg Hogan (JIRA)" <ji...@apache.org> on 2016/04/26 20:09:12 UTC

[jira] [Commented] (FLINK-2899) The groupReduceOn* methods which take types as a parameter fail with TypeErasure

    [ https://issues.apache.org/jira/browse/FLINK-2899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15258588#comment-15258588 ] 

Greg Hogan commented on FLINK-2899:
-----------------------------------

Is this due to a limitation of {{TypeExtractor.createTypeInfo}} or the lack of parameterization in user code?

The {{TypeInformation}} is extracted from {{NeighborsFunctionWithVertexValue<K, TreeMap<K, Integer>, NullValue, Vertex<K, K>>}} with {{TypeExtractor.createTypeInfo(NeighborsFunctionWithVertexValue.class, function.getClass(), 3, null, null)}} (link 0).

The function is instantiated with {{new PropagateNeighborValues()}}, so no parameterization. Does this limit what {{TypeExtractor}} can extract?

I agree with [~Zentol] that if {{ApplyNeighborCoGroupFunction}} is extracting {{TypeInformation}} then accepting this as a function parameter looks superfluous.

0: [https://github.com/andralungu/flink/commit/1fbc09ca35e80f61f31cf7a6166f27f2a6f142c1#diff-e2c6679629dbf39dbd9ba785d1516f2cR188]
1: [https://github.com/andralungu/flink/commit/1fbc09ca35e80f61f31cf7a6166f27f2a6f142c1#diff-e2c6679629dbf39dbd9ba785d1516f2cR96]

> The groupReduceOn* methods which take types as a parameter fail with TypeErasure
> --------------------------------------------------------------------------------
>
>                 Key: FLINK-2899
>                 URL: https://issues.apache.org/jira/browse/FLINK-2899
>             Project: Flink
>          Issue Type: Bug
>          Components: Gelly
>    Affects Versions: 0.10.0
>            Reporter: Andra Lungu
>
> I tried calling  groupReduceOnEdges (EdgesFunctionWithVertexValue<K, VV, EV, T> edgesFunction, EdgeDirection direction, TypeInformation<T> typeInfo) in order to make the vertex-centric version of the Triangle Count library method applicable to any kind of key and I got a TypeErasure Exception. 
> After doing a bit of debugging (see the hack in https://github.com/andralungu/flink/tree/trianglecount-vertexcentric), I saw that actually the call to TypeExtractor.createTypeInfo(NeighborsFunctionWithVertexValue.class, .... in ApplyNeighborCoGroupFunction does not work properly, i.e. it returns null. From what I see, the coGroup in groupReduceOnNeighbors tries to infer a type before "returns" is called. 
> I may be missing something, but that particular feature (groupReduceOn with types) is not documented or tested so we would also need some tests for that. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)