我正在使用Spark构建随机森林模型,我想保存它以便以后使用。我在没有HDFS的pyspark(Spark 2.0.1)上运行此文件,因此文件被保存到本地文件系统。
我已经尝试这样做:
import pyspark.sql.types as T from pyspark.ml.feature import VectorAssembler from pyspark.ml.classification import RandomForestClassifier data = [[0, 0, 0.], [0, 1, 1.], [1, 0, 1.], [1, 1, 0.]] schema = T.StructType([ T.StructField('a', T.IntegerType(), True), T.StructField('b', T.IntegerType(), True), T.StructField('label', T.DoubleType(), True)]) df = sqlContext.createDataFrame(data, schema) assembler = VectorAssembler(inputCols=['a', 'b'], outputCol='features') df = assembler.transform(df) classifier = RandomForestClassifier(numTrees=10, maxDepth=15, labelCol='label', featuresCol='features') model = classifier.fit(df) model.write().overwrite().save('saved_model')
然后,加载模型:
from pyspark.ml.classification import RandomForestClassificationModel loaded_model = RandomForestClassificationModel.load('saved_model')
但是我得到这个错误:
Py4JJavaError: An error occurred while calling o108.load. : java.lang.UnsupportedOperationException: empty collection
我不确定它指的是哪个集合。有什么想法如何正确加载(或保存)模型吗?