开发者社区> 问答> 正文

找不到类型为org.apache.flink.api.common.typeinfo.TypeInf

找不到类型为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.当发生这些错误时,一般的指导方针是什么?将来如何避免这些错误?

展开
收起
问问小秘 2020-05-19 13:25:00 2522 0
1 条回答
写回答
取消 提交回答
  • 当您拥有用户代码(即源代码或地图函数或具有通用参数的某种性质的代码)时,通常会发生这种情况。在大多数情况下,您可以通过添加以下内容来解决此问题

    implicit val typeInfo = TypeInformation.of(classOf[(Int, String)])
    
    

    如果您的代码在另一个具有通用参数的方法中,则还可以尝试添加绑定到该方法的通用参数的上下文,如下所示:

    def myMethod[T: TypeInformation](input: DataStream[Int]): DataStream[T] = ...
    
    2020-05-19 13:31:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载