Следующий код не компиляции:Scala компилятор говорит: "Нет TypeTag для Т" в методе с использованием дженериков
override def read[T <: Product](collection : String): Dataset[T] = {
val mongoDbRdd = MongoSpark.load(sparkSession.sparkContext,MongoDBConfiguration.toReadConfig(collection))
mongoDbRdd.toDS[T]
}
Это "TODS" определение:
def toDS[T <: Product: TypeTag: NotNothing](): Dataset[T] = mongoSpark.toDS[T]()
Компилятор говорит:
Error:(11, 20) No TypeTag available for T
mongoDbRdd.toDS[T]
Error:(11, 20) not enough arguments for method toDS: (implicit evidence$3: reflect.runtime.universe.TypeTag[T], implicit evidence$4: com.mongodb.spark.NotNothing[T])org.apache.spark.sql.Dataset[T].
Unspecified value parameters evidence$3, evidence$4.
mongoDbRdd.toDS[T]
линия 11 является mongoDbRdd.toDS[T]
Я действительно не знаю, что происходит с Scala Generics, и компилятор не очень конкретный, любая идея?
Где 'Product' заявленным? – nmat
Его от Scala (пакет scala) – italktothewind