Hi Vasiliki,
your error is a very common problem we have together with types. The
problem is that Java does type erasure, which means that
return vertices.map(new ApplyMapperToVertex<K, VV>(mapper));
becomes
return vertices.map(new ApplyMapperToVertex(mapper));
Therefore we don't have the types. But since we have "implements
MapFunction<Tuple2<K, VV>, Tuple2<K, VV>>" the type extractor infers the
output through the input (which is always known).
The return type must be provided manually e.g. by implementing the
interface ResultTypeQueryable or by the a new API operator (see my last
mailing list mail).
Regards,
Timo
On 30.10.2014 11:59, Vasiliki Kalavri wrote:
Hi all,
one of the operations we want to implement for the flink graph api is
mapVertices, i.e. applying a mapper to the vertices of the graph.
The current implementation assumes that the vertex value type remains the
same:
https://github.com/project-flink/flink-graph/blob/master/src/main/java/flink/graphs/Graph.java
.
However, we would like to be able to change the vertex value type. When
trying this out, we got this error:
Type of TypeVariable 'NV' in 'class flink.graphs.Graph$ApplyMapperToVertex'
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).
How could we solve this and support changing the vertex value type?
Thank you!
Cheers,
Vasia.