为什么在运行Word2VecExample form Scala Spark mllib时发生java.lang.IllegalStateException?

为什么在运行Word2VecExample form Scala Spark mllib时发生java.lang.IllegalStateException?,scala,apache-spark,apache-spark-mllib,word2vec,Scala,Apache Spark,Apache Spark Mllib,Word2vec,我正在尝试读取Spark mllib示例(Word2VecExample)中的文本文件,并创建它的word Vector。我通过一些文本文件运行它,它没有给出错误,但是当读取我的一个文件时,它给出了这个错误,我真的很困惑,因为我尝试了所有的方法,比如文件格式(utf-8)和ASCII字符。 这是我的源代码: package org.apache.spark.examples.mllib import org.apache.spark.SparkConf import org.apache.sp

我正在尝试读取Spark mllib示例(Word2VecExample)中的文本文件,并创建它的word Vector。我通过一些文本文件运行它,它没有给出错误,但是当读取我的一个文件时,它给出了这个错误,我真的很困惑,因为我尝试了所有的方法,比如文件格式(utf-8)和ASCII字符。 这是我的源代码:

package org.apache.spark.examples.mllib

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
// $example on$
import org.apache.spark.mllib.feature.{Word2Vec, Word2VecModel}
// $example off$

object Word2VecExample {

  def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setAppName("Word2VecExample")
    conf.setMaster("local[4]")
    val sc = new SparkContext(conf)

    val input = sc.textFile("C:\\Users\\...\\Desktop\\yelp_labelled.txt").map(line => line.split(" ").toSeq)

    val word2vec = new Word2Vec()

    val model = word2vec.fit(input)

    val synonyms = model.findSynonyms("1", 5)

    for((synonym, cosineSimilarity) <- synonyms) {
      println(s"$synonym $cosineSimilarity")
    }

    model.save(sc, "C:\\Users\\...\\Desktop\\Edited1Yelp")
    val sameModel = Word2VecModel.load(sc, "C:\\Users\\...\\Edited1Yelp")

    // $example off$

    sc.stop()
  }
}

第43行引用了
val synonyms=model.findSynonyms(“1”,5)
,但我确信这是真的,因为我使用其他一些文件正确运行了程序。

您好,我对Spark了解不多。还不能发表评论,所以必须给出答案。查看文档

.findSynonyms(“字符串”,num) 查找与给定单词最相似的单词数“num”,不包括单词本身


所以我忍不住想知道是不是在寻找字符串“1”可能不是问题所在。我绞尽脑汁想找到“1”的5个同义词,可能是“一”,可能是“一元”或潜在的“个人”。据我所知,Spark是一个机器学习库,所以你有没有试着简化这个问题?可能需要一个同义词,或者提供一个更简单的字符串来搜索,比如“happy”。不过这只是我的两分钱,主要是对实际发生的事情感到好奇。

基于Spark示例,这个错误是由
findSynonyms(String,int)
方法引起的。此方法中的字符串参数必须有一个向量,如果不存在此向量,则会显示错误

Java.lang.IllegalStateException

出现了。
因此,在我的示例中,输入字符串参数“1”没有向量。

我看到了文档。这很有帮助。我根据问题的内容回答问题。tnx@Alexande Robinonit很清楚你不认识Scala。我也不知道Scala:)所以,这也是我的问题,这个答案的tnx。
Exception in thread "main" 19/05/29 18:36:29 INFO BlockManagerInfo: Removed broadcast_4_piece0 on DESKTOP-T5EN156:64774 in memory (size: 13.0 KB, free: 2.2 GB)
java.lang.IllegalStateException: 1 not in vocabulary
    at org.apache.spark.mllib.feature.Word2VecModel.transform(Word2Vec.scala:533)
    at org.apache.spark.mllib.feature.Word2VecModel.findSynonyms(Word2Vec.scala:545)
    at org.apache.spark.examples.mllib.Word2VecExample$.main(Word2VecExample.scala:43)
    at org.apache.spark.examples.mllib.Word2VecExample.main(Word2VecExample.scala)