我是新来的,所以听起来可能很傻。我正在本地计算机上编写Scala Spark代码,然后将其上载到集群以执行(测试环境)。
我的问题是,在创建Jar时,因为它们存在于集群中,所以我不想包括Spark依赖项。但是要在本地运行代码,我需要它们。
到目前为止,我已经尝试提供所提供的范围

      <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.compat.version}</artifactId>
            <version>2.4.0</version>
            <scope>provided</scope>
        </dependency>


这使我可以从Jar中排除依赖项,但是当我在本地运行它时,我需要删除作用域。我查看了其他范围选项,但找不到适合我的选项。
我想念什么?

最佳答案

您需要使用其他maven profiles

这样的事情将帮助您:

<profiles>
    <profile>
        <id>test</id>
        …
        <dependencies>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_${scala.compat.version}</artifactId>
                <version>2.4.0</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
        …
    </profile>
    <profile>
        <id>debug</id>
        …
        <dependencies>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_${scala.compat.version}</artifactId>
                <version>2.4.0</version>
            </dependency>
        </dependencies>
        …
    </profile>
</profiles>


然后,您可以在远程运行test配置文件,并在本地运行debug配置文件。

09-10 02:38
查看更多