У меня есть следующая функция, которая отлично работает в REPL, по сути, это проверка типа данных схемы и сопоставление ее с столбцом, когда я сглаживаю файл позже и zipWithIndex:Scala Counter в Loop, вызывающем проблемы во время выполнения
//Match a Schema to a Column value
def schemaMatch(x: Array[String]) = {
var accum = 0
for(i <- 0 until x.length) {
val convert = x(i).toString.toUpperCase
println(convert)
val split = convert.split(' ')
println(split.mkString(" "))
matchTest(split(1), accum)
accum += 1
}
def matchTest(y:String, z:Int) = y match{
case "STRING" => strBuf += z
case "INTEGER" => decimalBuf += z
case "DECIMAL" => decimalBuf += z
case "DATE" => dateBuf += z
}
}
schemaMatch(schema1)
ошибка я получаю:
Exception in thread "main" java.lang.NoSuchMethodError: scala.runtime.IntRef.create(I)Lscala/runtime/IntRef;
at com.capitalone.DTS.dataProfiling$.schemaMatch$1(dataProfiling.scala:112)
at com.capitalone.DTS.dataProfiling$.main(dataProfiling.scala:131)
at com.capitalone.DTS.dataProfiling.main(dataProfiling.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
линия 112:
var accum = 0
Любые идеи, почему он больше не работает при компиляции, но работает в REPL, и как его исправить?
Возможно, вы могли бы дать нам результат, когда он работал в REPL? –