flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andra Lungu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-2899) The groupReduceOn* methods which take types as a parameter fail with TypeErasure
Date Thu, 29 Oct 2015 13:31:27 GMT

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

Andra Lungu commented on FLINK-2899:

I don't have the code with me right now. The exception looks something like this: 

org.apache.flink.api.common.functions.InvalidTypesException: Type of TypeVariable 'K' in 'class
org.apache.flink.graph.library.TriangleCount$GatherHigherIdNeighbors' could not be determined.
This is most likely a type erasure problem. The type extraction currently supports types with
generic variables only in cases where all variables in the return type can be deduced from
the input type(s).
    at org.apache.flink.api.java.typeutils.TypeExtractor.createTypeInfoWithTypeHierarchy(TypeExtractor.java:451)
    at org.apache.flink.api.java.typeutils.TypeExtractor.privateCreateTypeInfo(TypeExtractor.java:379)
    at org.apache.flink.api.java.typeutils.TypeExtractor.createTypeInfo(TypeExtractor.java:345)

I proposed some sort of a workaround in a PR. Basically the problem is that those methods
receive a type as a parameter and then, for some reason, try to create that type info instead
of using the one provided. 

> 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
>            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

View raw message