繁体   English   中英

地图上的NoSuchMethodError(Spark Scala类)

[英]NoSuchMethodError on a Map (Spark Scala class)

我在本地盒子上以独立模式运行Spark 1.4.1和Scala 2.11。 我有以下......

 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-shell运行此代码时,它工作得很好。 但是,通过spark-submit作为类对象运行它,我会得到奇怪的行为。 我收到以下错误

 *** 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中给出了错误。

有没有人遇到过这个问题? 有人可以建议我如何解决它吗? 提前谢谢你的帮助!

预构建的Apache Spark 1.4.1下载适用于Scala 2.10。 如果您想使用Scala 2.11,可以使用-Dscala-2.11进行构建。 请参阅文档中的为Scala 2.11构建

正如Daniel Darabos所说,要么再次为2.11建立火花,要么你可以简单地将scala降级到2.10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM