Just small change from PojoExample:
PojoExample.java
<http://apache-flink-user-mailing-list-archive.2336050. >n4.nabble.com/file/t921/ PojoExample.java
public class PojoExample<KEY> {
private SelectorContainer<KEY> selectorContainer;
// KeySelector class like this can't be used in flink !!!
public static class SelectorContainer<K> implements KeySelector<Word ,K> {
public KeySelector<Word, K> keySelector;
public SelectorContainer(KeySelector<Word, K> keySelector) {
this.keySelector = keySelector;
}
@Override
public K getKey(Word value) throws Exception {
return keySelector.getKey(value);
}
}
public void run() {
dataStream.keyed(selectorContainer);
}
}
This will cause:
Type of TypeVariable 'K' in 'class
org.apache.flink.streaming.examples.wordcount. PojoExample$SelectorContainer'
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).
org.apache.flink.api.java.typeutils.TypeExtractor. createTypeInfoWithTypeHierarch y(TypeExtractor.java:915)
org.apache.flink.api.java.typeutils.TypeExtractor. privateCreateTypeInfo( TypeExtractor.java:836)
org.apache.flink.api.java.typeutils.TypeExtractor. getUnaryOperatorReturnType( TypeExtractor.java:622)
org.apache.flink.api.java.typeutils.TypeExtractor. getKeySelectorTypes( TypeExtractor.java:443)
org.apache.flink.api.java.typeutils.TypeExtractor. getKeySelectorTypes( TypeExtractor.java:436)
org.apache.flink.streaming.api.datastream.KeyedStream.< init>(KeyedStream.java:108)
org.apache.flink.streaming.api.datastream.DataStream. keyBy(DataStream.java:263)
org.apache.flink.streaming.examples.wordcount. PojoExample.execute( PojoExample.java:86)
org.apache.flink.streaming.examples.wordcount. PojoExample.main(PojoExample. java:108)
It sames can't use a class contains the KeySelector ?
--
Sent from: http://apache-flink-user-mailing-list-archive.2336050. n4.nabble.com/
Free forum by Nabble | Edit this page |