Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala-spark corenlp-java.lang.ClassNotFoundException_Scala_Apache Spark_Stanford Nlp - Fatal编程技术网

Scala-spark corenlp-java.lang.ClassNotFoundException

Scala-spark corenlp-java.lang.ClassNotFoundException,scala,apache-spark,stanford-nlp,Scala,Apache Spark,Stanford Nlp,我想运行spark coreNLP,但运行spark submit时出现java.lang.ClassNotFoundException错误 下面是来自github示例的scala代码,我将其放入一个对象中,并定义了一个SparkContext analyzer.touction.scala: package analyzer import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import or

我想运行spark coreNLP,但运行spark submit时出现java.lang.ClassNotFoundException错误

下面是来自github示例的scala代码,我将其放入一个对象中,并定义了一个SparkContext

analyzer.touction.scala:

package analyzer
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.sql.functions._
import com.databricks.spark.corenlp.functions._
import sqlContext.implicits._

object Sentiment {
  def main(args: Array[String]) {

    val conf = new SparkConf().setAppName("Sentiment")
    val sc = new SparkContext(conf)

        val input = Seq(
                (1, "<xml>Stanford University is located in California. It is a great university.</xml>")
                ).toDF("id", "text")

        val output = input
            .select(cleanxml('text).as('doc))
            .select(explode(ssplit('doc)).as('sen))
            .select('sen, tokenize('sen).as('words), ner('sen).as('nerTags), sentiment('sen).as('sentiment))

            output.show(truncate = false)
    }
}
然后,我通过无问题运行创建了我的jar

sbt package
最后,我将我的工作提交给Spark:

spark-submit --class "analyzer.Sentiment" --master local[4] target/scala-2.11/sentimentanalizer_2.11-0.1-SNAPSHOT.jar 
但我得到了以下错误:

java.lang.ClassNotFoundException: analyzer.Sentiment
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.apache.spark.util.Utils$.classForName(Utils.scala:173)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:641)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:120)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
我的文件touction.scala正确地位于名为“analyzer”的包中

当我从运行SimpleApp示例时,我注意到MySimpleProject/bin/包含一个SimpleApp.class。myEntityProject/bin为空。因此,我尝试清理我的项目(我正在使用Eclipse for Scala)


我想这是因为我需要生成感悟.class,但我不知道怎么做-它是用SimpleApp.scala自动完成的,当它试图用Eclipse scala运行/构建时,它崩溃了。

也许你应该尝试添加

scalaSource in Compile := baseDirectory.value / "src"
对于您的
build.sbt
,cause读取“包含主要Scala源的目录默认为
src/main/Scala

或者只是将源代码放在这个结构中

$ find .
./src
./src/main
./src/main/scala
./src/main/scala/analyzer
./src/main/scala/analyzer/Sentiment.scala
./src/main/scala/com
./src/main/scala/com/databricks
./src/main/scala/com/databricks/spark
./src/main/scala/com/databricks/spark/corenlp
./src/main/scala/com/databricks/spark/corenlp/CoreNLP.scala
./src/main/scala/com/databricks/spark/corenlp/functions.scala
./src/main/scala/com/databricks/spark/corenlp/StanfordCoreNLPWrapper.scala

我在touction.scala的开头没有看到包分析器。在名为“analyzer”的目录中是不够的,因为Scala允许您将文件名和目录与类和包分离。我在touction.Scala的开头添加了“package analyzer”。没有效果。我还将scala的版本从2.11改为2.10.6,使其配置与spark corenlp相同,但没有效果。它成功了!非常感谢。现在它已经编译了,我可以看到我必须处理库导入问题;)
scalaSource in Compile := baseDirectory.value / "src"
$ find .
./src
./src/main
./src/main/scala
./src/main/scala/analyzer
./src/main/scala/analyzer/Sentiment.scala
./src/main/scala/com
./src/main/scala/com/databricks
./src/main/scala/com/databricks/spark
./src/main/scala/com/databricks/spark/corenlp
./src/main/scala/com/databricks/spark/corenlp/CoreNLP.scala
./src/main/scala/com/databricks/spark/corenlp/functions.scala
./src/main/scala/com/databricks/spark/corenlp/StanfordCoreNLPWrapper.scala