1

私はspark、特にmllibライブラリを使い始めました。関数のいくつかは、スコープとプライベート ステートメントが制限されています。これらの関数をコードで使用するにはどうすればよいですか? 例: KMeans.scala

private[mllib] def pointCost(
      centers: TraversableOnce[BreezeVectorWithNorm],
      point: BreezeVectorWithNorm): Double =
    findClosest(centers, point)._2

kmeans を拡張するクラスを作成し、この関数を使用しようとすると、アクセスできないように見えます。次のエラーが表示されます。

error: method MethodInClassKMeans in class KMeans cannot be accessed in myClass

これを回避する方法の例を誰か教えてもらえますか? 感謝と敬意

4

1 に答える 1

1

使用したいクラスと同じ名前空間を使用すると、private[package] メンバーにアクセスできます。

しかし、これらのメソッドがパッケージ プライベートであるのにはおそらく十分な理由があります。このメソッドは、次のポイント リリースでなくなる可能性があります。

したがって、必要な小さくて孤立したものがあれば、ライセンスで許可されている場合は、コードをプロジェクトにコピーするだけです。

于 2014-11-27T15:20:31.267 に答える