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
類型,所以我不能改變它的方差。有什麼其他方式可以概括這個功能嗎?
有趣......這是正確的!謝謝 :) –