У мене є dataframe (inputDF) з 100 стовпців з десятковим типом даних. Я хочу створити LabelPoint, використовуючи dataframe (inputDF).
Я можу створити LablePoint шляхом жорсткого кодування кожного колонкового індексу кадру даних, що не є оптимальним рішенням.
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), ...))
Як створити LablePoint з DataFrame безпосередньо без жорсткого кодування кожного колонкового індексу кадру даних?
Допомога буде дуже вдячна.
Відповіді:
0 для відповіді № 1VectorAssembler може бути трансформатором, який ви хочете знайти.
VectorAssembler - це трансформатор, який об'єднує заданий список стовпців в один векторний стовпець.
id | годину | мобільний | userFeatures | натиснув
---- | ------ | -------- | ------------------ | ---------
0 | 18 | 1,0 | [0.0, 10.0, 0.5] | 1,0
ПІСЛЯ
id | годину | мобільний | userFeatures | натиснув | функції
---- | ------ | -------- | ------------------ | -----------------------------
0 | 18 | 1,0 | [0.0, 10.0, 0.5] | 1,0 | [18.0, 1.0, 0.0, 10.0, 0.5]
Я збентежений, чому дві таблиці не можуть відображатися правильно.
Див. Приклад у Spark Doc для більш детальної інформації.
Якщо вам потрібна додаткова допомога, будь ласка, опишіть імена ваших стовпців і як вони генеруються.