Getting Error : Failed to load org/hl7/fhir/instance/model/api/IAnyResource on running spark-submit

Getting Error : Failed to load org/hl7/fhir/instance/model/api/IAnyResource on running spark-submit

我正在尝试在 java 中执行 spark-submit,它也有项目中需要的一些 HAPI-FHIR 库。当我执行作业时出现以下错误

Error: Failed to load package.MainClass: org/hl7/fhir/instance/model/api/IAnyResource

我已经在 pom.xml 中包含了 FHIR 依赖项,如图所示

FHIR 版本:R4
HAPI FHIR 版本为:5.4.2
PS : 我是 运行 它在 ec2 实例上

在 Maven 中导入依赖项会在编译时类路径中提供它,以便您可以编译代码。它本身不会将这些依赖项与您的部署代码打包在一起。我不确定 Spark 可用的所有工具或其最佳实践,但我猜你需要打包一个“uber”(又名“阴影”)jar,其中包含你编译的代码和依赖项,所有这些都在一个单独的自我中- 包含可以提交给 spark 的 jar 文件。

有多种工具可以执行此操作。最常见的可能是 maven shade 插件:https://maven.apache.org/plugins/maven-shade-plugin/

正如@crig 提到的那样,Spark 在其 class 路径中找不到罐子。 我尝试为所有罐子创建一个胖罐子,但不知道为什么无法创建胖罐子 但是将罐子添加到 spark-submit --jars hapi-fhir-base-5.4.2 解决了问题