Wenn ich eine RDD mit etwa 500 Spalten und 200 Millionen Zeilen habe, und RDD.columns.indexOf("target", 0)
zeigt Int = 77
, die mir sagt, dass meine gezielte abhängige Variable Spalte 77 ist. Aber ich habe nicht genug wissen, wie zu wählen gewünschte (Teil-) Spalten als Features (sagen wir Spalten von 23 bis 59, 111 bis 357, 399 bis 489). Ich frage mich, ob ich so etwas anwenden kann:RDD to LabeledPoint Konvertierung
val data = rdd.map(col => new LabeledPoint(
col(77).toDouble, Vectors.dense(??.map(x => x.toDouble).toArray))
Alle Anregungen oder Anleitungen werden sehr geschätzt.
Vielleicht habe ich RDD mit DataFRRame vermasselt, kann ich die RDD in DataFrame mit .toDF()
konvertieren oder es ist einfacher, das Ziel mit DataFrame als RDD zu erreichen.
Großartiger Code! und es funktioniert sehr gut. Ich habe nur eine kleine Modifikation für den Tippfehler 'val targetInd = df.columns.indexOf (" target ")' –
Richtig, korrigiert :) – zero323
tatsächlich zu schätzen. Gibt es eine schnelle Möglichkeit, die Funktion in Ihrem Beispiel zu deaktivieren? Nehmen wir an, Sie haben 'val featInd = List (" x1 "," x3) .map .... ', was ist, wenn ich 200 Features habe, die ich will und nur 3 von ihnen? Etwas wie 'val featInd = De-List (" x2 "). map ....'? –