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

Aljoscha Krettek commented on FLINK-2033:
-----------------------------------------

Yes, I think this is the right way to go.

> Add overloaded methods with explicit TypeInformation parameters to Gelly
> ------------------------------------------------------------------------
>
>                 Key: FLINK-2033
>                 URL: https://issues.apache.org/jira/browse/FLINK-2033
>             Project: Flink
>          Issue Type: Task
>          Components: Gelly
>    Affects Versions: 0.9
>            Reporter: PJ Van Aeken
>
> For the implementation of the Scala API for Gelly (FLINK-1962), we need to 
> pass explicit TypeInformation since the Java TypeExtractor does not work for 
> all Scala Types (see FLINK-2023).
> To do this, the java Gelly API needs to be expanded with methods that allow 
> for explicit passing of TypeInformation.
> An example with mapVertices:
> {code}
>  public <NV> Graph<K, NV, EV> mapVertices(final MapFunction<Vertex<K, VV>, 
> NV> mapper) {
>         TypeInformation<K> keyType = ((TupleTypeInfo<?>) 
> vertices.getType()).getTypeAt(0);
>         String callLocation = Utils.getCallLocationName();
>         TypeInformation<NV> valueType = 
> TypeExtractor.getMapReturnTypes(mapper, vertices.getType(), callLocation, 
> false);
>         TypeInformation<Vertex<K, NV>> returnType = 
> (TypeInformation<Vertex<K, NV>>) new TupleTypeInfo(
>                 Vertex.class, keyType, valueType);
>         return mapVertices(mapper,returnType);
>     }
>     public <NV> Graph<K, NV, EV> mapVertices(final MapFunction<Vertex<K, VV>, 
> NV> mapper, TypeInformation<Vertex<K, NV>> returnType) {
>         DataSet<Vertex<K, NV>> mappedVertices = vertices.map(
>                 new MapFunction<Vertex<K, VV>, Vertex<K, NV>>() {
>                     public Vertex<K, NV> map(Vertex<K, VV> value) throws 
> Exception {
>                         return new Vertex<K, NV>(value.f0, mapper.map(value));
>                     }
>                 }).returns(returnType);
>         return new Graph<K, NV, EV>(mappedVertices, this.edges, this.context);
>     }
> {code}



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

Reply via email to