提问 使用fromSource Api 报错说 evidence$11 TypeInfomation参数没有传入为什么呢
evidence$11 是 Flink 的内部类名,用于指示某个类型 T 是否是另一个类型 U 的子类型。这种错误通常是由于未正确配置类型信息或未正确指定泛型参数而引起的。
要解决这个错误,您需要指定 fromSource 方法需要的正确类型信息,或者在使用该方法时正确指定泛型参数。
以下是一些可能会导致错误的情况和解决方法:
未为 fromSource 方法指定正确的 TypeInformation 类型信息。可以通过调用 env.getConfig().getTypeSerializer(Class type) 方法或者 env.getStreamExecutionEnvironment().createTypeInformation(Class type) 方法来指定正确的类型信息。
在定义流时未正确指定泛型参数。例如,如果您定义了一个 DataStream,但是未指定类型信息,则会导致 fromSource 方法无法确定正确的类类型。
以下是一些示例代码,可以帮助您了解如何为 fromSource 方法指定正确的类型信息和泛型参数:
// 示例代码 1:使用 createTypeInformation 方法指定类型信息
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
// 定义 KeyedStream
KeyedStream<MyEvent, Tuple> keyedStream = env.addSource(new MyEventSource())
.assignTimestampsAndWatermarks(new MyTimeExtractor())
.keyBy(new MyKeySelector());
// 示例代码 2:为 DataStream 指定泛型参数
DataStream<MyEvent> dataStream = env.addSource(new MyEventSource())
.assignTimestampsAndWatermarks(new MyTimeExtractor());
// 示例代码 3:使用 createTupleTypeInfo 方法指定 Tuple 类型信息
DataStream<Tuple2<String, Integer>> stream = env.addSource(new MySource())
.returns(Types.TUPLE(Types.STRING, Types.INT));
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。