/ / Ako vytvoriť LablePoint z DataFrame priamo bez tvrdého kódovania indexu každého stĺpca dataframe? - Scala, apache-spark, iskra-dataframe, apache-spark-mllib

Ako vytvoriť LablePoint z DataFrame priamo bez hardcoding každého indexu stĺpcov dátového rámca? - scala, apache-spark, spark-dataframe, apache-spark-mllib

Mám dataframe (inputDF) so 100 stĺpcami s desatinným typom údajov. Chcem vytvoriť LabelPoint pomocou dátového rámca (inputDF).

Dokážem vytvoriť LablePoint tak, že zakóduje každý stĺpec indexu dataframe, čo nie je optimálne riešenie.

val outputLabelPoint = inputDF.map(x => new LabeledPoint(0.0, Vectors.dense(x.getAs[Double](0),x.getAs[Double](1),x.getAs[Double](2),x.getAs[Double](3), ...))

Ako vytvoriť LablePoint z DataFrame priamo bez pevného zakódovania indexu každého stĺpca dataframe?

Pomoc by bola veľmi cenená.

odpovede:

0 pre odpoveď č. 1

VectorAssembler môže byť transformátor, ktorý chcete nájsť.

VectorAssembler je transformátor, ktorý kombinuje daný zoznam stĺpcov do jedného vektorového stĺpca.

id | hodina mobilný userFeatures | clicked
---- | ------ | -------- | ------------------ | ---------
0 | 18 | 1,0 | [0,0, 10,0, 0,5] | 1.0

PO

id | hodina mobilný userFeatures | klikol | Vlastnosti
---- | ------ | -------- | ------------------ | --------- | -----------------------------
0 | 18 | 1,0 | [0,0, 10,0, 0,5] | 1,0 | [18,0, 1,0, 0,0, 10,0, 0,5]

Som zmätený, prečo sa tieto dve tabuľky nemôžu správne zobraziť.

Pozri príklad v Spark Doc pre viac detailov.

Ak potrebujete ďalšiu pomoc, opíšte názvy stĺpcov a spôsob ich generovania.