高レベルでは、Spark MLLibはRDDの上に書かれ、Spark MLはDataFramesの上に構築されていますが、私の理解は詳細には欠けています。spark mllibとspark mlのベクトル実装の違いは何ですか?
特に、さまざまなベクター実装の互換性がないと、実装の違いとその理由は何ですか?
高レベルでは、Spark MLLibはRDDの上に書かれ、Spark MLはDataFramesの上に構築されていますが、私の理解は詳細には欠けています。spark mllibとspark mlのベクトル実装の違いは何ですか?
特に、さまざまなベクター実装の互換性がないと、実装の違いとその理由は何ですか?
ml
にローカル線形代数を維持する動機は、SPARK-13944で説明されています。
生産展開を簡略化するために、線形代数をスパーク依存性のないスタンドアロンモジュールとして分離します。将来、ローカルモデルを含むかもしれない新しいモジュールmllib-localを呼び出すことができます。 大きな問題は、ユーザー定義型の依存関係を削除することです。
パッケージ名がmllibからmlに変更されます。たとえば、ベクトルは
org.apache.spark.mllib.linalg.Vector
からorg.apache.spark.ml.linalg.Vector
に変更されます。新しいMLパイプラインの戻りベクトルタイプはMLパッケージのものになります。ただし、既存のmllibコードには触れません。その結果、APIが破損する可能性があります。また、ベクトルがSpark SQLによってmllibベクトルからロードされると、ベクトルはmlパッケージのものに自動的に変換されます。今実装はいくつかの変換方法を除く、同じに近い
、
これは明らかだった、ありがとう! – HBX