我正在尝试运行apache.spark.org上的此示例(代码如下,整个教程在此处:https://spark.apache.org/docs/latest/mllib-feature-extraction.html),使用他们网站上引用的text8文件(http://mattmahoney.net/dc/text8.zip):
import org.apache.spark._
import org.apache.spark.rdd._
import org.apache.spark.SparkContext._
import org.apache.spark.mllib.feature.{Word2Vec, Word2VecModel}
val input = sc.textFile("/Users/rkita/Documents/Learning/random/spark/MLlib/examples/text8",4).map(line => line.split(" ").toSeq)
val word2vec = new Word2Vec()
val model = word2vec.fit(input)
val synonyms = model.findSynonyms("china", 40)
for((synonym, cosineSimilarity) <- synonyms) {
println(s"$synonym $cosineSimilarity")
}
// Save and load model
model.save(sc, "myModelPath")
val sameModel = Word2VecModel.load(sc, "myModelPath")
我正在我的Mac上使用Spark(2核,8GB内存),我认为我已经在spark-env.sh文件中正确设置了内存分配,如下所示:
export SPARK_EXECUTOR_MEMORY=4g
export SPARK_WORKER_MEMORY=4g
当我尝试拟合模型时,我一直收到Java堆错误。我在Python中也得到了相同的结果。我使用JAVA_OPTS增加了Java内存大小。
文件只有100MB,所以我认为我的内存设置可能不正确,但我不确定这是否是根本原因。
有人在笔记本电脑上尝试过这个例子吗?
我不能将文件放在我们公司的服务器上,因为我们不应该导入外部数据,所以我只能在个人笔记本电脑上工作。如果您有任何建议,我会感激听到。谢谢!