0

Ich versuche, einen neuen Datensatz zu erstellen, indem Intervalle aus einem anderen Datensatz beispielsweise betrachten dataset1 als Eingabe und dataset2 als Ausgabe unter:erstellen Spark-Datensatz mit Teilen anderer Dataset

dataset1 = [1, 2, 3, 4, 5, 6] 
dataset2 = [1, 2, 2, 3, 3, 4, 4, 5, 5, 6] 

ich es geschafft, zu tun das Verwenden von Arrays, aber für die mlib wird ein Datensatz benötigt.

Mein Code mit Array:

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 scheint, wie die Art und Weise zu gehen, aber wie eine Funktion für den nächsten Wert in dem Datensatz suchen?

+0

können Sie die erwartete Ausgabe für das angegebene Dataset posten? – BDR

+0

@BDR danke für die Antwort, gegeben Dataset1 aus der Frage Beschreibung Ich möchte das Dataset2 –

+0

Sie wollen sagen, dass Ihre Dataset1 ist Ihre Eingabe und erwartete Ausgabe ist Dataset2? Hat es es richtig gemacht? – BDR

Antwort

0

Das Problem hier ist, dass ein Array in keiner Weise zu einem DataSet ähnlich ist. Ein DataSet ist ungeordnet und hat keine Indizes. Daher hilft Ihnen das Denken in Arrays nicht. Gehen Sie für eine Seq und behandeln Sie es, ohne Indizes und Positionen überhaupt zu verwenden.

Um ein Array-ähnliches Verhalten auf einem DataSet darzustellen, müssen Sie also eigene Indizes erstellen. Dies geschieht einfach durch Paarung des Wertes mit der Position in dem "abstrakten Array", das wir repräsentieren.

Also der Typ Ihres DataSet wird etwa sein, wobei der erste der Index und der zweite der Wert ist. Sie werden ungeordnet ankommen, also müssen Sie Ihre Logik auf eine funktionellere Art und Weise überarbeiten. Es ist nicht wirklich klar, was Sie erreichen wollen, aber ich hoffe, ich habe Ihnen einen Hinweis gegeben. Ansonsten erkläre besser das erwartete Ergebnis im Kommentar zu meiner Antwort und ich werde es bearbeiten.

+0

danke für die antwort und sorry für schlechte erklärung. Was ich versuche zu erreichen, ist ein Datensatz, der mit jedem n-dimensionalen Intervall des ursprünglichen Datensatzes erstellt wurde. –