2015-09-17 4 views
4

Я запускаю Spark 1.4.1 со Scala 2.11 в автономном режиме в своем локальном поле. У меня есть следующий ...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-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) 

Все, что я хочу, это простой поиск, чтобы получить типы файлов для обработки.

Кажется, строка, в которой я создаю карту, дает ошибку. Я действительно зациклен на том, почему он работает в искровой оболочке и дает ошибку с помощью spark-submit.

Кто-нибудь сталкивался с этой проблемой? Может кто-нибудь предложить, как я это исправить? Благодарим вас за помощь!

ответ

3

Готовые Apache Spark 1.4.1 загрузок для Scala 2.10. Если вы хотите использовать Scala 2.11, вы можете построить с помощью -Dscala-2.11. См. Building for Scala 2.11 в документации.

+1

Спасибо за ваш ответ. Я изменю свой SDK Scala в IntelliJ на 2.10.x и попытаюсь перестроить. Странно, что единственными ошибками строки является линия Map(). Если я использую и if - else блокирует, весь парсер работает просто отлично. –

0

Как Даниэль Darabos сказал либо построить искру снова для 2.11 или можно просто понизить до 2,10 Scala

Смежные вопросы