1

A. 以下は私の設定です:

OS: Windows7

Spark バージョン: 1.4.1 (1.4.0 にも存在する問題)

言語: Python と Scala の両方

B. ソースコードの例:

from pyspark import SparkContext
from pyspark.mllib.feature import Word2Vec

sc = SparkContext(appName='Word2Vec')
inp = sc.textFile("news2.txt").map(lambda row: row.split(" "))
word2vec = Word2Vec()
model = word2vec.fit(inp)  #Results in exception...

C. 以下はスタック トレースです。

Traceback (most recent call last):
  File "E:/StudySpark/Projects/Example/poc/poc5/main.py", line 10, in <module>
    model = word2vec.fit(inp)
  File "E:\StudySpark\Projects\Example\spark1.4.1\spark-1.4.1-bin-hadoop2.6\python\lib\pyspark.zip\pyspark\mllib\feature.py", line 519, in fit
  File "E:\StudySpark\Projects\Example\spark1.4.1\spark-1.4.1-bin-hadoop2.6\python\lib\pyspark.zip\pyspark\mllib\common.py", line 128, in callMLlibFunc
  File "E:\StudySpark\Projects\Example\spark1.4.1\spark-1.4.1-bin-hadoop2.6\python\lib\pyspark.zip\pyspark\mllib\common.py", line 121, in callJavaFunc
  File "E:\StudySpark\Projects\Example\spark1.4.1\spark-1.4.1-bin-hadoop2.6\python\lib\py4j-0.8.2.1-src.zip\py4j\java_gateway.py", line 538, in __call__
  File "E:\StudySpark\Projects\Example\spark1.4.1\spark-1.4.1-bin-hadoop2.6\python\lib\py4j-0.8.2.1-src.zip\py4j\protocol.py", line 300, in get_return_value
py4j.protocol.Py4JJavaError: An error occurred while calling o19.trainWord2Vec.
: java.util.NoSuchElementException: next on empty iterator
    at scala.collection.Iterator$$anon$2.next(Iterator.scala:39)
    at scala.collection.Iterator$$anon$2.next(Iterator.scala:37)
    at scala.collection.IterableLike$class.head(IterableLike.scala:91)
    at scala.collection.AbstractIterable.head(Iterable.scala:54)
    at org.apache.spark.mllib.feature.Word2VecModel.<init>(Word2Vec.scala:442)
    at org.apache.spark.mllib.feature.Word2Vec.fit(Word2Vec.scala:413)
    at org.apache.spark.mllib.feature.Word2Vec.fit(Word2Vec.scala:422)
    at org.apache.spark.mllib.api.python.PythonMLLibAPI.trainWord2Vec(PythonMLLibAPI.scala:560)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231)
    at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:379)
    at py4j.Gateway.invoke(Gateway.java:259)
    at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
    at py4j.commands.CallCommand.execute(CallCommand.java:79)
    at py4j.GatewayConnection.run(GatewayConnection.java:207)
    at java.lang.Thread.run(Thread.java:744)

手がかりはありますか?

よろしくお願いします、

ヴィシャール

4

1 に答える 1

1

ありがとう!ベーコン。あなたは私を正しい道に導きました。

入力ファイルに、入力で特定の回数繰り返される単語がありませんでした。デフォルトでは、word2vec モデルに表示されるトークンの最小カウントは 5 です (YOUR_INSTALL_PATH\spark-1.4.1-bin-hadoop2.6\python\lib\pyspark.zip\pyspark\mllib の下の feature.py のクラス word2vec を見てください)。 \feature.py)

私の読書、エラーメッセージはもっと良かったかもしれません。

よろしく、 ヴィシャール

于 2015-08-16T06:08:09.960 に答える