【问题标题】:Spark: stanford-nlp runs too slow in sparkSpark:stanford-nlp 在 spark 中运行太慢
【发布时间】:2017-06-01 15:53:46
【问题描述】:

在我的应用程序中,我使用 stanford NLP 运行 nlp 作业。 stanford parse 模型被打包在一个 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")

【问题讨论】:

  • 您是否成功地以某种方式提高了速度?

标签: apache-spark pyspark


【解决方案1】:

您可以试用 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 网站。

【讨论】:

    猜你喜欢
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多