/ /パンダデータフレームでsparkのMLLibルーチンを使う - python、apache-spark、pyspark、apache-spark-mllib

pandasデータフレームでのsparkのMLLibルーチンの使用 - python、apache-spark、pyspark、apache-spark-mllib

かなり大きなデータセット(〜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 詳細については。