【问题标题】:cannot call main class无法调用主类
【发布时间】:2019-02-19 08:57:56
【问题描述】:

我正在使用这个命令在 spark 上运行我的工作。

spark-submit --class=ueba.Main    --jars $JARS1,$JARS2  target/UEBA-1.0-SNAPSHOT.jar "hdfs://some_location:9000/seco"

这是我当前项目结构的快照。

我注意到我的旧项目具有这种结构,其中主类位于文件夹“scala”下。我认为文件夹'scala'是在我创建旧项目时自动创建的。在我当前的项目中,我没有(蓝色)文件夹“scala”。

问题:

  1. 如何调用我的主类?
  2. 你能解释一下蓝色文件夹 scala 是什么吗?为什么我需要它?我只有一个蓝盒 java。

编辑

这是我的新结构。我制作了“蓝色”文件夹 scala(原来蓝色文件夹表示项目根目录)。现在'scala'是项目根目录。但我认为我的主类的路径不正确。我尝试运行这个命令,它说'class not found exeption'(我跑了 mvn package 之前拿到一个 jar)

spark-submit --class ueba.Main    --jars $JARS1,$JARS2  target/UEBA-1.0-SNAPSHOT.jar "hdfs://some_path:9000/seco"

问题:w.r.t 的正确命令是什么?主类的位置?

【问题讨论】:

    标签: scala apache-spark intellij-idea main


    【解决方案1】:

    在 Intellij IDEA 中创建 scala 源根目录:

    1. 添加一个 scala 文件夹。
    2. 右键单击该文件夹并选择“将目录标记为”>“源根目录”。
    3. 在您的情况下添加相同的包结构“ueba”并将您的 .scala 文件放在那里。

    【讨论】:

    • 是的,它奏效了。请告诉我使用什么命令来运行我的主类。谢谢。
    • 使用 maven 或 sbt 创建一个 JAR,然后使用:spark-submit --class=.class --master .jar
    • 对不起......我的主类的路径不是'scala'文件夹是源根目录吗?是 ueba.Main 吗?
    • 是的,它将是 ueba.Main scala 是您所有源代码的根文件夹,所有软件包都驻留在那里。一个类将始终由它所在的包而不是目录访问。你从不做 usr.local.SomeProject.src.main.scala.Main.class :D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 2014-09-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多