2011-05-25 74 views
0

我安裝了斯卡拉Eclipse插件,但它讓我惱火斯卡拉Eclipse插件問題

它不能正確編譯,這表明編譯錯誤下面的語句

job setMapperClass classOf[ASPMapReduce.Map] 

類型不匹配;發現:java.lang.Classcom.ebay.twitch.ASPMapReduce.Map要求:java.lang.Class中的[_ <: org.apache.hadoop.mapreduce.Mapper]

但實際上ASPMapReduce.Map真的是一個子類org.apache.hadoop.mapreeuce.Mapper 我可以用maven編譯成功。但eclipse總是告訴我編譯錯誤

scala eclipse插件有什麼問題?順便說一句,我使用斯卡拉IDE 2.0.0-beta4與Scala 2.9.0.final爲Eclipse 3.6

+0

這樣的問題在[Scala IDE郵件列表](http://groups.google.com/group/scala-ide-user/topics)上討論得更好,尤其是考慮到Scala IDE仍處於測試階段。 – 2011-05-25 07:35:12

回答

0

您的問題似乎有相同的根本原因this one。這個問題對斯卡拉產生了this ticket

更新:此錯誤是固定在Scala中使用Scala的2.8.1(BOO),或愚蠢的,因爲它似乎,確定作業前的映射2.9.1 RC2

可以解決該問題。以下編譯:

import org.apache.hadoop._ 
import org.apache.hadoop.io._ 
import org.apache.hadoop.conf._ 
import org.apache.hadoop.mapreduce._ 

class MyMapper extends Mapper[LongWritable,Text,Text,Text] { 
    override def map(key: LongWritable, value: Text, context: Mapper[LongWritable,Text,Text,Text]#Context) { 
    } 
} 

object MyJob { 
    def main(args:Array[String]) { 
    val job = new Job(new Configuration()) 
    job.setMapperClass(classOf[MyMapper]) 
    } 
}