【发布时间】:2015-06-09 10:06:13
【问题描述】:
我正在尝试使用 spark 的 word2vec 创建字典。在此过程中,我创建了一个大约 200 个单词的数组,并将 findSynonyms 函数应用于每个单词。但是,在 200 个单词中,会有几个单词不会返回任何同义词(我想是由于训练数据的大小)。然后 spark 函数将抛出一个异常,触发进程停止。
我要做的是尝试捕获此异常,以便如果该单词未生成任何同义词,则转到下一个并返回未知或 null 之类的内容。
这是我一直在做的事情:
val synonyms = sc.parallelize(listwords map{x=> (x, try {model.findSynonyms(x, 30)} catch {case e: Exception => ("Exception",0.0) })})
但是,使用 Try 和 Catch 会将值同义词的类型转换为 java.io.Serializable 而不是成对的 (String, Double)
我在 Try and Catch 上做错了吗?有没有更好的方法来做到这一点?
【问题讨论】:
标签: scala apache-spark try-catch