/ / Використання ігрової програми MLLib з файлами даних pandas - python, apache-spark, pyspark, apache-spark-mllib

Використання імітаційних процедур MLLib з файлами даних pandas - python, apache-spark, pyspark, apache-spark-mllib

У мене досить великий набір даних (~ 20 Гб), який зберігаєтьсядиск як Pandas / PyTables HDFStore, і я хочу запустити випадкові ліси та підсилити дерева на ньому. Спроба зробити це в моїй місцевій системі триватиме назавжди, тому я думав про виведення його з іскрового кластера, я маю доступ, а замість цього використовую процедури MLLib.

Поки мені вдалося завантажити файловий пандуяк іскровий кадр даних, я трохи заплутався про те, як використовувати це в процедурах MLLib. Я не дуже знайомий з MLLib, і, схоже, що він приймає тільки типи даних LabeledPoint.

Буду вдячний за будь-які ідеї / покажчики / коди, які пояснюють, як використовувати (панди або іскрові) інформаційні кадри як вхідні дані для алгоритмів MLLib - прямо або побічно, шляхом перетворення на підтримувані типи.

Дякую.

Відповіді:

1 для відповіді № 1

Вам потрібно перетворити DataFrame до RDD[LabeledPoint]. Примітка a LabeledPoint це просто а (label: Double, features: Vector). Розглянемо процедуру відображення, яка захоплює значення з кожного рядка:

val rdd = df.map { row =>
new LabeledPoint(row(0), DenseVector(row.getDouble(1),..., row.getDouble(n)))
}

Це поверне а RDD[LabeledPoint] який ви можете ввести в a RandomForest.trainRegressor(...), наприклад. Подивіться на DataFrame API для подробиць.