我在本地框上以獨立模式運行Spark 1.4.1和Scala 2.11。 我有以下...Map上的NoSuchMethodError(Spark Scala類)
object Parser {
def main(args: Array[String]) {
if (args.length < 6) {
System.err.println("Usage: my.Parser <host> <input_loc>
<input_dt> <match_term> <out_loc><file_type>")
System.exit(1)
}
println(" *** Starting summariziation process *** ")
var host : String = args(0)
var inploc : String = args(1)
val inpdate : String = args(2)
val matchTerm : String = args(3)
val outloc : String = args(4)
val fileType : String = args(5)
println(" <------------------------------------------- debug ::0.0 ")
val typesMap = Map("data" -> "data", "rider" -> "mon", "sms" -> "sms", "voice" -> "rec", "voucher" -> "vou")
println(" typesMap - " + typesMap)
.........
}
}
當我運行這段代碼通火花殼它工作得很好。但是,通過spark類提交作爲類對象,我會產生奇怪的行爲。我得到以下錯誤
*** Starting summariziation process ***
<------------------------------------------------- debug ::0.0
Exception in thread "main" java.lang.NoSuchMethodError:
scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
at my.Parser$.main(Parser.scala:138)
我只想要一個簡單的查找來導出要處理的文件類型。
看來我創建一個Map的行會給出錯誤。我真的難以理解爲什麼它在spark-shell中起作用,並給spark-submit帶來錯誤。
有沒有人遇到過這個問題?有人可以建議我如何解決它? 非常感謝您的幫助!
謝謝您的回覆。我將在IntelliJ中將我的Scala SDK更改爲2.10.x並嘗試重建。 奇怪的是,唯一的行錯誤是Map()行。如果我使用和if - else塊,整個解析器工作得很好.. –