栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

The generic type parameters of ‘Tuple2‘ are missing. In many cases lambda methods don‘t provide

The generic type parameters of ‘Tuple2‘ are missing. In many cases lambda methods don‘t provide

前言

想在使用datastream api 开发的时候,对于多个字段开窗的时候,刚开始是逐个排序,但是影响性能。所以想把两个字段一起来排序,就遇到以下问题。

问题描述
Exception in thread "main" org.apache.flink.api.common.functions.InvalidTypesException: 
The generic type parameters of 'Tuple2' are missing. 
In many cases lambda methods don't provide enough information 
for automatic type extraction when Java generics are involved.
An easy workaround is to use an (anonymous) class instead that implements the '
org.apache.flink.api.java.functions.KeySelector' interface.
Otherwise the type has to be specified explicitly using type information.
	at org.apache.flink.api.java.typeutils.TypeExtractionUtils.validateLambdaType(TypeExtractionUtils.java:371)
	at org.apache.flink.api.java.typeutils.TypeExtractor.getUnaryOperatorReturnType(TypeExtractor.java:565)
	at org.apache.flink.api.java.typeutils.TypeExtractor.getKeySelectorTypes(TypeExtractor.java:412)
	at org.apache.flink.api.java.typeutils.TypeExtractor.getKeySelectorTypes(TypeExtractor.java:403)
	at org.apache.flink.streaming.api.datastream.KeyedStream.(KeyedStream.java:116)
	at org.apache.flink.streaming.api.datastream.DataStream.keyBy(DataStream.java:293)

解决办法:
  // 避免flink java的泛型擦除 写法
        SingleOutputStreamOperator operator = singleOutputStreamOperator.keyBy(new KeySelector>() {
            @Override
            public Tuple2 getKey(Snapshot snapshot) throws Exception {
                return Tuple2.of(snapshot.getDateTime(), snapshot.getHsSecurityId());
            }
        }).flatMap(new SnapshotProcessFunction());
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/701684.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号