Я пытаюсь создать обобщенную функцию c для консолидации некоторых коллекций mongoDb, я использую классы case для ввода коллекций, и в своей функции я получаю тип в качестве параметра [T]
, например:
def refreshCollection[T](newDS:Dataset[T],oldDS:Dataset[T]): Dataset[T]={
val filteredOldDS=oldDS.join(newDS, Seq("id"),"left_anti").as[T]
filteredOldDS.union(newDS)
}
Проблема в том, что когда я пытаюсь преобразовать результат Dataframe объединения в исходный класс case, используя .as[T]
, чтобы вернуть Dataset[T]
У меня есть эта ошибка, даже если я импортировал sparkSession.implicits._
:
no implicit arguments of type: Encoder[T]
Интересно, что когда я делаю конвертацию с классом с фиксированным регистром, все в порядке, какой-нибудь совет по этому поводу?
Заранее спасибо!