首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在scala中使用Cascading 2.0时出现编译错误

在scala中使用Cascading 2.0时出现编译错误
EN

Stack Overflow用户
提问于 2012-12-06 16:41:57
回答 1查看 172关注 0票数 2

我在scala中使用了Cascading2.0,遇到了一个奇怪的编译问题

这是代码的主要部分

代码语言:javascript
复制
val sojSource = createSojSource(optionMap("input"))

val sinkScheme = createSojScheme(true)
val sink = new Hfs(sinkScheme, optionMap("output"), SinkMode.REPLACE)

var pipe = new Pipe("soj")
val each = new Each(pipe, new SojSampleFilter())

val flowDef = new FlowDef().addSource(pipe, sojSource).addTailSink(each, sink)// compile error

下面是最后一行代码的错误消息

代码语言:javascript
复制
type mismatch; found : cascading.tap.hadoop.Hfs required: cascading.tap.Tap[_, _, _] 
Note: org.apache.hadoop.mapred.JobConf <: Any (and cascading.tap.hadoop.Hfs <: cascading.tap.Tap[org.apache.hadoop.mapred.JobConf,org.apache.hadoop.mapred.RecordReader,org.apache.hadoop.mapred.OutputCollector]), but Java-defined class Tap is invariant in type Config. You may wish to investigate a wildcard type such as `_ <: Any`. (SLS 3.2.10) 
Note: org.apache.hadoop.mapred.RecordReader <: Any (and cascading.tap.hadoop.Hfs <: cascading.tap.Tap[org.apache.hadoop.mapred.JobConf,org.apache.hadoop.mapred.RecordReader,org.apache.hadoop.mapred.OutputCollector]), but Java-defined class Tap is invariant in type Input. You may wish to investigate a wildcard type such as `_ <: Any`. (SLS 3.2.10) 
Note: org.apache.hadoop.mapred.OutputCollector <: Any (and cascading.tap.hadoop.Hfs <: cascading.tap.Tap[org.apache.hadoop.mapred.JobConf,org.apache.hadoop.mapred.RecordReader,org.apache.hadoop.mapred.OutputCollector]), but Java-defined class Tap is invariant in type Output. You may wish to investigate a wildcard type such as `_ <: Any`. (SLS 3.2.10) 

您能告诉我如何解决这个问题吗?原因是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-12 16:16:37

我在滚烫的树中找到了这个代码,它解决了这个问题:

代码语言:javascript
复制
// The scala compiler has problems with the generics in Cascading
protected def castHfsTap(tap : Hfs) : Tap[JobConf, RecordReader[_,_], OutputCollector[_,_]] = {
  tap.asInstanceOf[Tap[JobConf, RecordReader[_,_], OutputCollector[_,_]]]
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13739813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档