找不到类型为org.apache.flink.api.common.typeinfo.TypeInformation [...]的证据参数的隐式值
我正在尝试为Apache Flink编写一些用例。我经常遇到的一个错误是
could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[SomeType]
我的问题是,当它们发生或何时不发生时,我无法真正确定。
最新的示例如下
...
val largeJoinDataGen = new LargeJoinDataGen(dataSetSize, dataGen, hitRatio)
val see = StreamExecutionEnvironment.getExecutionEnvironment
val newStreamInput = see.addSource(largeJoinDataGen)
...
我正在尝试为Apache Flink编写一些用例。我经常遇到的一个错误是
could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[SomeType] 我的问题是,当它们发生或何时不发生时,我无法真正确定。
最新的示例如下
... val largeJoinDataGen = new LargeJoinDataGen(dataSetSize, dataGen, hitRatio) val see = StreamExecutionEnvironment.getExecutionEnvironment val newStreamInput = see.addSource(largeJoinDataGen) ... 其中LargeJoinDataGen extends GeneratorSource[(Int, String)]和GeneratorSource[T] extends SourceFunction[T]都在单独的文件中定义。
当试图建立这个我得到
Error:(22, 39) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[(Int, String)]
val newStreamInput = see.addSource(largeJoinDataGen)
1.为什么给定的示例有错误?
2.当发生这些错误时,一般的指导方针是什么?将来如何避免这些错误?
当您拥有用户代码(即源代码或地图函数或具有通用参数的某种性质的代码)时,通常会发生这种情况。在大多数情况下,您可以通过添加以下内容来解决此问题
implicit val typeInfo = TypeInformation.of(classOf[(Int, String)])
如果您的代码在另一个具有通用参数的方法中,则还可以尝试添加绑定到该方法的通用参数的上下文,如下所示:
def myMethod[T: TypeInformation](input: DataStream[Int]): DataStream[T] = ...
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。