Se si dispone di un RDD con circa 500 colonne e 200 milioni di righe e RDD.columns.indexOf("target", 0)
mostra Int = 77
che indica che la variabile dipendente di destinazione si trova alla colonna numero 77. Ma non ho abbastanza conoscenza su come selezionare colonne (parziali) desiderate come caratteristiche (per esempio voglio colonne da 23 a 59, da 111 a 357, da 399 a 489). Mi chiedo se posso applicare tale:Conversione da RDD a LabeledPoint
val data = rdd.map(col => new LabeledPoint(
col(77).toDouble, Vectors.dense(??.map(x => x.toDouble).toArray))
Eventuali suggerimenti o linee guida sarà molto apprezzato.
Forse ho incasinato RDD con DataFRrame, posso convertire il rdd in DataFrame con .toDF()
oppure è più facile raggiungere l'obiettivo con DataFrame rispetto a RDD.
Grande codice! e funziona molto bene. Ho appena fatto alcune piccole modifiche per il typo 'val targetInd = df.columns.indexOf (" target ")' –
Right, corretto :) – zero323
apprezzo davvero. C'è un modo rapido per de-listare la funzione nel tuo esempio? Supponiamo tu abbia 'val featInd = List (" x1 "," x3) .map .... ", cosa succede se ho 200 funzionalità che voglio e ne so solo 3, qualcosa come" val featInd = De-List (" x2 "). map ....'? –