我试图在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)
任何帮助都将不胜感激。
答案 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')