Я не знаю, как это объяснить, но Spark, кажется, добавляет скрытый (неявный?) Параметр в конструктор.Вот код, который я пробовал в spark-shell
(в обычном списке параметров оболочки Scala будет пустым):
scala> class A {}
defined class A
scala> classOf[A].getConstructors()(0).getAnnotatedParameterTypes
res0: Array[java.lang.reflect.AnnotatedType] = Array(sun.reflect.annotation.AnnotatedTypeFactory$AnnotatedTypeBaseImpl@5ed65e4b)
Из-за этого параметра я не могу передать свой пользовательский класс InputFormat
в функцию Spark hadoopFile
.Любые подсказки о том, что здесь происходит, или, по крайней мере, как я могу создать класс с конструктором без параметров?