簡體   English   中英

使用其他數據集的部分創建 Spark 數據集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM