2017-04-05 6 views
4

pyspark mllibpyspark mlパッケージの違いは何ですか? :pyspark mllibはそうではない`pyspark mlll`と` pyspark ml`パッケージ

https://spark.apache.org/docs/latest/api/python/pyspark.mllib.html

https://spark.apache.org/docs/latest/api/python/pyspark.ml.html

pyspark mllibは、データフレームレベルでターゲットアルゴリズムであるように見える私が見つけたpyspark ml

1つの違いはpyspark.ml.tuning.CrossValidatorpyspark ml実装です。

私は、Apache Sparkフレームワークのアルゴリズムを実装する場合には、mllibのアルゴリズムを使用する必要がありますが、分割されているようですか?

それぞれが異なるパッケージ構造を含むため、タイプを変換することなく、各フレームワーク間の相互運用性はないようです。

答えて

8

S「のpyspark.mlクラスはpyspark.sql.DataFrameのみを使用することができます(あなたが言及したように)のに対し、S」の私の経験からpyspark.mllibクラスは唯一pyspark.RDDで使用することができます。

DATAFRAMEベースの機械学習のAPIをユーザーが迅速に組み立て、実用的な機械学習のパイプラインを設定できるようにする:pyspark.ml package州でpyspark.ml、最初のエントリのドキュメントでこれをサポートするために、言及があります。

今、私は、私は3 APIの利用可能スパーク2.0で、それらの相対的な利点/欠点とその性能比較についてしばらく前に読んで記事を思い出しています。 A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets。私は新しいクライアントサーバーでパフォーマンステストを行っていましたが、DataFrameベースのアプローチ(私の選択のアプローチ)ではなく、RDDベースのアプローチを開発する価値があるシナリオが存在する場合は興味がありましたが、逃げる

要点は、それぞれが非常に適している状況と、そうでない可能性がある状況があるということでした。私が覚えている例の1つは、データが既に構造化されている場合、DataFramesはRDDのパフォーマンス上の利点を発揮しますが、操作の複雑さが増すにつれて明らかに劇的になります。別の見解は、RDDよりもキャッシュするときに、DataSetsとDataFramesが消費するメモリ量がはるかに少ないことです。要約すると、低レベルの操作ではRDDは優れているが、高度な操作では、他のAPIのDataFramesやDataSetsとの表示や結合は優れていると結論付けました。

このパッケージのクラスはpyspark.sql.DataFramesを利用するように設計されているため、あなたの質問に完全に戻るためには、回答はpyspark.mlと思われます。私は、DataFrameとRDDの2つの構造と同じデータに対してテストする場合、これらのパッケージに実装された複雑なアルゴリズムのパフォーマンスが重要であると考えています。さらに、データの表示と魅力的なビジュアルの開発は、より直感的で、より良いパフォーマンスを実現します。

+0

+1、RDDレベルでの実装はアルゴリズムの実装面でデータフレームレベルよりも高速ですが、SQL(データフレーム)スタイルではなく機能(rdd)に偏っています。 –