2017-06-01 8 views
0

私のアプリケーションでは、スタンフォードNLPでnlpジョブを実行します。スタンフォード解析モデルはjarファイルにパッケージ化されており、UDFとして機能します。私はsqlContext.sqlを使用してそれを使用します。しかし、私はそれがゆっくりと動くと感じます。誰でも私はそれをスピードアップするのを助けることができますか?スパーク:stanford-nlpの実行が遅すぎる

コードを次のように

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

何らかの方法でスピードを上げることに成功しましたか? – Shaido

答えて

0

あなたはスパークのためのスタンフォードCoreNLPラッパーを試してみることができます。使用法を簡素化し、コードをスピードアップしてください。 git pageには、avaiableコマンドも含まれています。このshort installation guideに示すように、あなたは直接、次のコマンドを使用してスパークコンテキストに言語モデルを添付することができます。

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のWebサイトを参照してくださいすることができます。