Matthias J. Sax created FLINK-2557:
--------------------------------------
Summary: Manal type information via "returns" fails in DataSet API
Key: FLINK-2557
URL:
https://issues.apache.org/jira/browse/FLINK-2557 Project: Flink
Issue Type: Bug
Components: Java API
Reporter: Matthias J. Sax
I changed the WordCount example as below and get an exception:
Tokenizer is change to this (removed generics and added cast to String):
{code:java}
public static final class Tokenizer implements FlatMapFunction {
public void flatMap(Object value, Collector out) {
String[] tokens = ((String) value).toLowerCase().split("\\W+");
for (String token : tokens) {
if (token.length() > 0) {
out.collect(new Tuple2<String, Integer>(token, 1));
}
}
}
}
{code}
I added call to "returns(....)" here:
{code:java}
DataSet<Tuple2<String, Integer>> counts =
text.flatMap(new Tokenizer()).returns("Tuple2<String,Integer>")
.groupBy(0).sum(1);
{code}
The exception is:
{noformat}
Exception in thread "main" java.lang.IllegalArgumentException: The types of the interface org.apache.flink.api.common.functions.FlatMapFunction could not be inferred. Support for synthetic interfaces, lambdas, and generic types is limited at this point.
at org.apache.flink.api.java.typeutils.TypeExtractor.getParameterType(TypeExtractor.java:686)
at org.apache.flink.api.java.typeutils.TypeExtractor.getParameterTypeFromGenericType(TypeExtractor.java:710)
at org.apache.flink.api.java.typeutils.TypeExtractor.getParameterType(TypeExtractor.java:673)
at org.apache.flink.api.java.typeutils.TypeExtractor.privateCreateTypeInfo(TypeExtractor.java:365)
at org.apache.flink.api.java.typeutils.TypeExtractor.getUnaryOperatorReturnType(TypeExtractor.java:279)
at org.apache.flink.api.java.typeutils.TypeExtractor.getFlatMapReturnTypes(TypeExtractor.java:120)
at org.apache.flink.api.java.DataSet.flatMap(DataSet.java:262)
at org.apache.flink.examples.java.wordcount.WordCount.main(WordCount.java:69)
{noformat}
Fix:
This should not immediately fail, but also only give a
"MissingTypeInfo" so that type hints would work.
The error message is also wrong, btw: It should state that raw types are
not supported.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)