Spark:stanford-nlp的火花速度太慢了

时间:2017-06-01 02:32:25

标签: apache-spark pyspark

在我的应用程序中,我使用stanford NLP运行nlp作业。 stanford解析模型打包在jar中,并作为UDF进行修改,我使用sqlContext.sql来使用它。但我觉得它运行得这么慢。有人可以帮助我加快速度吗?

代码如下:

sqlContext.sql("CREATE TEMPORARY FUNCTION segmenter AS 'cn.com.datamesh.stanford.nlp.StanfordNlp'").collect()
sqlContext.sql("SELECT segmenter(text) FROM twitter_data")

1 个答案:

答案 0 :(得分:0)

您可以试用Spark的Stanford CoreNLP包装器。它应该简化使用,并希望加快您的代码。这是git page,其中还包括可用的命令。如此short installation guide所示,您可以使用以下命令直接将语言模型附加到Spark上下文:

val version = "3.6.0"
val model = s"stanford-corenlp-$version-models" // append "-english" to use the full English model
val jars = sc.asInstanceOf[{def addedJars: scala.collection.mutable.Map[String, Long]}].addedJars.keys // use sc.listJars in Spark 2.0
if (!jars.exists(jar => jar.contains(model))) {
  import scala.sys.process._
  s"wget http://repo1.maven.org/maven2/edu/stanford/nlp/stanford-corenlp/$version/$model.jar -O /tmp/$model.jar".!!
  sc.addJar(s"/tmp/$model.jar")
}

对于支持的型号,您可以看到CoreNLP网站。

相关问题