かなり大きなデータセット(〜20GB)が保存されていますPandas / PyTables HDFStoreとしてディスクを作成し、ランダムフォレストとブーストツリーを実行します。私のローカルシステムでそれをやろうとすることは永遠にかかります、それで私は私がアクセスして代わりにMLLibルーチンを使用する火花クラスターにそれを遠ざけることを考えていました。
私はパンダデータフレームをロードすることができましたがスパークデータフレームとして、MLLibルーチンでこれを使用する方法について少し混乱しています。MLLibにはあまり慣れていないので、LabeledPointデータ型のみを受け入れるようです。
サポートされている型に変換することにより、直接または間接的にMLLibアルゴリズムへの入力としてデータフレームを使用する方法(パンダまたはスパーク)を説明するアイデア/ポインタ/コードをいただければ幸いです。
ありがとう。
回答:
回答№1は1あなたは DataFrame
〜に RDD[LabeledPoint]
。注意してください LabeledPoint
ちょうど (label: Double, features: Vector)
。各行から値を取得するマッピングルーチンを考えます。
val rdd = df.map { row =>
new LabeledPoint(row(0), DenseVector(row.getDouble(1),..., row.getDouble(n)))
}
これにより、 RDD[LabeledPoint]
あなたは RandomForest.trainRegressor(...)
、 例えば。を見てください DataFrame
API 詳細については。