[英]Create Spark dataset with parts of other dataset
我正在嘗試通過從另一個數據集中獲取間隔來創建一個新數據集,例如,將 dataset1 作為輸入,將 dataset2 作為輸出:
dataset1 = [1, 2, 3, 4, 5, 6]
dataset2 = [1, 2, 2, 3, 3, 4, 4, 5, 5, 6]
我設法使用數組做到了這一點,但是對於 mlib,需要一個數據集。
我的數組代碼:
def generateSeries(values: Array[Double], n: Int): Seq[Array[Float]] = {
var res: Array[Array[Float]] = new Array[Array[Float]](m)
for(i <- 0 to m-n){
res :+ values(i to i + n)
}
return res
}
FlatMap 似乎是要走的路,但是函數如何搜索數據集中的下一個值呢?
這里的問題是數組與數據集完全不同。 DataSet 是無序的並且沒有索引,因此從數組的角度考慮對您沒有幫助。 尋找一個 Seq 並在不使用索引和位置的情況下對其進行處理。
因此,要在 DataSet 上表示類似數組的行為,您需要創建自己的索引。 這只是通過將值與我們所表示的“抽象數組”中的位置配對來完成。
因此,您的 DataSet 的類型將類似於[(Int,Int)]
,其中第一個是索引,第二個是值。 它們將無序到達,因此您需要以更實用的方式重新設計您的邏輯。 目前還不清楚您想要實現的目標,但我希望我給了您一個提示。 否則,在對我的答案的評論中更好地解釋預期結果,我將進行編輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.