0

バージョン 1.6 では、パイプライン API に、パイプライン ステージを保存およびロードするための新しい機能セットが追加されました。分類子をトレーニングした後、ステージをディスクに保存しようとしましたが、後で再度ロードして再利用し、モデルを計算する手間を省きました。

モデルを保存すると、何らかの理由でディレクトリにメタデータ ディレクトリしか含まれません。再度ロードしようとすると、次の例外が発生します。

スレッド「メイン」の例外 java.lang.UnsupportedOperationException: org.apache.spark.rdd.RDD$$anonfun$first$1.apply(RDD.scala:1330) の空のコレクション org.apache.spark.rdd.RDDOperationScope$ .withScope(RDDOperationScope.scala:150) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:111) at org.apache.spark.rdd.RDD.withScope(RDD.scala:316) at org .apache.spark.rdd.RDD.first(RDD.scala:1327) at org.apache.spark.ml.util.DefaultParamsReader$.loadMetadata(ReadWrite.scala:284) at org.apache.spark.ml.tuning. CrossValidator$SharedReadWrite$.load(CrossValidator.scala:287) at org.apache.spark.ml.tuning.CrossValidatorModel$CrossValidatorModelReader.load(CrossValidator.scala:393) at org.apache.spark.ml.tuning.CrossValidatorModel$CrossValidatorModelReader .load(CrossValidator.scala:384) で org.apache.spark.ml.util.MLReadable$class.load(ReadWrite.scala:176) で org.apache.spark.ml.tuning.CrossValidatorModel$.load(CrossValidator.scala:368) でorg.test.categoryminer.spark.SparkTextClassifierModelCache.get(SparkTextClassifierModelCache.java:34) の org.apache.spark.ml.tuning.CrossValidatorModel.load(CrossValidator.scala)

私が使用するモデルを保存するには:crossValidatorModel.save("/tmp/my.model")

それをロードするには、次を使用します。CrossValidatorModel.load("/tmp/my.model")

CrossValidator オブジェクトで fit(dataframe) を呼び出したときに取得した CrossValidatorModel オブジェクトで save を呼び出します。

メタデータディレクトリのみを保存する理由はありますか?

4

1 に答える 1