1
语境火花数据集和方差
我已经创建了一个函数,它接受一个Dataset[MyCaseClass]
,并返回它的列中的一个的元件的阵列
def columnToArray(ds: Dataset[MyCaseClass], columnName: String): Array[String] = {
ds
.select(columnName)
.rdd
.map(row => row(0).toString)
.collect
}
它正常工作与案例类
case class MyCaseClass(
fieldA: String,
fieldB: String,
fieldC: String
)
问题
我需要重用某种其他类型的Dataset
的功能。在试图概括,我宣布Dataset
的类型AnyRef
但是当我与上述情况类我收到以下错误
类型不匹配使用;找到:org.apache.spark.sql.Dataset [com.my.package.MyCaseClass] required:org.apache.spark.sql.Dataset [AnyRef]注意:com.my.package.MyCaseClass <:AnyRef,但类Dataset在类型T中是不变的。您可能希望将T定义为+ T。 (SLS 4.5)
我想在错误提到类型T
是Dataset
类型,所以我不能改变它的方差。有什么其他方式可以概括这个功能吗?
有趣......这是正确的!谢谢 :) –