当前位置: 首页 > 知识库问答 >
问题:

noClassDefoundError:scala代码的spark-sbumit中的/files/file更好

佟涵畅
2023-03-14

当我将程序导出到一个jar文件中并执行它时,我会得到一个java.lang.noClassDefoundError:better/files/file error。

下面是我使用的代码。

预先感谢任何协助

SBT

name := "testFunctions"

version := "1.0"

scalaVersion := "2.11.8"

libraryDependencies += "com.github.pathikrit" %% "better-files" % "2.17.1"
libraryDependencies ++= Seq(
  "org.apache.spark" % "spark-core_2.11" % "2.1.0",
  "org.apache.spark" % "spark-sql_2.11" % "2.1.0",
  "com.github.pathikrit" %% "better-files" % "2.17.1"
)

initialize := {
  val _ = initialize.value
  if (sys.props("java.specification.version") != "1.8")
    sys.error("Java 8 is required for this project.")
}
/**
  * Created by cloudera on 7/23/17.
  */

import better.files.File._
import org.apache.spark.sql.SparkSession


object funcJM {


  val forDelete = (root/"/home/cloudera/Documents/fabo")
    .createIfNotExists()

  if (forDelete.exists)
    forDelete.delete()


  def main(args:Array[String]) : Unit = {

    val spark = SparkSession.builder
      .master("local")
      .appName("Get ForEx Data")
      .getOrCreate()



  }

}
spark-submit --class funcJM --master local[*] /home/cloudera/testFunctions/target/scala-2.11/testfunctions_2.11-1.0.jar --driver-class-path /home/cloudera/testFunctions/target/scala-2.11/testfunctions_2.11-1.0.jar

代码所在的树结构如下所示--因此名为func的类位于scala目录中

\main
    \java
    \resources
    \scala
        -funcJM(class)
    \scala-2.11

共有1个答案

桂志诚
2023-03-14

你可以做三件事:

>

  • 使用类似sbt程序集的东西来编译fat JAR。包含better.files.file的jar将打包在TestFunctions_2.11-1.0.jar中。

    将包含更好包的jar文件复制到spark jars目录:../spark-2.1.0-bin-hadoop2.7/jars

    使用--driver-class-path better-files-akka2.10.jar在spark-submit调用中指定包含better包的jar文件作为参数

  •  类似资料:
    • 当我在IntelliJ中通过右键单击“debug”运行我的sbt项目时,我得到了这个错误消息。 我只有在运行IntelliJ时才会出现这个错误。当我使用从SBT运行它时,它工作得很好。也可以工作文件。如何修复这个问题,使我的项目作为应用程序运行? *解决方案* 手动添加Scala-reflect-2.11.8.jar

    • 问题内容: 在liquibase中是否可以创建Java代码更改集(即提供一个Java类,该类将接收JDBC连接并在数据库中执行一些更改)? (我知道飞行路线具有这种功能) 问题答案: 是的,有这样的功能。您可以创建一个: 该类必须实现接口。

    • 是否可以更改AbstractHttpMessageConverter writeInternal()方法中的响应状态代码? 在我的抽象中(扩展MappingJackson2HttpMessageConverter),我希望将错误响应更改为200,并将实际的状态代码(例如400)添加到JSON中的状态字段中。 编辑1 我返回的代码如下: 所以对于这两个变体来说,这意味着: 在这两种情况下,都将返回h

    • 在liquibase中是否有一种方法来创建java代码更改集(即提供一个java类,它将接收一个JDBC连接并在数据库中执行一些更改)? (我知道飞翔道有这样特点)

    • 我在Vaadin7做一个项目。因为我需要改变一个页面的主题。 但在Vaadin 7里,我找不到这样的。 我知道会有办法做到的。 以及当我更改主题时如何在UI上应用更改?

    • 本文向大家介绍Angular angular-file-upload文件上传的示例代码,包括了Angular angular-file-upload文件上传的示例代码的使用技巧和注意事项,需要的朋友参考一下 问题描述 附件上传 检定结果以附件形式上传。 这里先不考虑api。 实现的任务就是,点击选择文件,选择之后可以清楚掉该文件。 插件介绍 用到了项目映入过的一个插件,angular-file-u