【发布时间】:2020-05-23 00:53:21
【问题描述】:
我正在尝试构建一个通用函数来整合一些 mongoDb 集合,我正在使用案例类来键入集合,并在我的函数中接收类型作为参数 [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)
}
问题是当我尝试使用 .as[T] 将连接的 Dataframe 结果转换为原始案例类以返回 Dataset[T] 时,我遇到了这个错误,即使我已经导入了 sparkSession.implicits._:
no implicit arguments of type: Encoder[T]
有趣的是,当我使用固定的 case 类进行转换工作正常时,有什么建议吗?
提前致谢!
【问题讨论】:
标签: scala apache-spark implicit