Pyspark ML上的save()Word2vec模型正在创建空文件夹

时间:2017-03-23 23:17:19

标签: python-3.x apache-spark nlp pyspark word2vec

我试图在spark 2.0上保存我在pyspark中构建的word2vec模型。

word2vec_model.write().overwrite().save('filepath/word2vec')

这成功完成并在word2vec文件夹下创建了2个子文件夹(数据和元数据),但这两个子文件夹是空的,除了标题为_SUCCESS的空文件。

随后load失败了。

w2vw = Word2Vec.load('filepath/word2vec')

,例外情况为:java.lang.UnsupportedOperationException: empty collection

word2vec模型本身工作正常,我通过一系列简单的变换器创建它。我不确定出了什么问题。我的模型创建代码段:

tokenizer = Tokenizer(inputCol="input", outputCol="words")
remover = StopWordsRemover(inputCol="words", outputCol="filtered_1")
customRemover = CustomRemover(inputCol="filtered_1",outputCol="filtered")
word2vec = Word2Vec(inputCol="filtered",vectorSize=100, minCount=10)

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为,我猜您保存了word2vec模型而不是word2vec,因此 对于word2vec模型,您必须通过以下代码阅读它:

from pyspark.ml.feature import Word2VecModel
w2vw_model = Word2VecModel.load('filepath/word2vec')    

如果您仅保存word2vec,我就是这个对象:

word2vec = Word2Vec(inputCol="filtered",vectorSize=100, minCount=10)
word2vec.write().overwrite().save('filepath_to_just_word2vec_not_its_model')

您必须使用此代码块导入

w2vw = Word2Vec.load('filepath_to_just_word2vec_not_its_model')