【问题标题】:How to include spark tests as Maven dependency如何将 Spark 测试作为 Maven 依赖项包含在内
【发布时间】:2019-11-15 21:35:40
【问题描述】:

我继承了依赖于

的旧代码
org.apache.spark.LocalSparkContext 

在火花核心测试中。但火花核心罐(正确)不包括仅测试类。我无法确定火花测试类是否/在哪里有自己的 Maven 工件。这里的正确方法是什么?

【问题讨论】:

  • 好的,我看到这个“Josh Rosen 添加了一条评论 - 16/Sep/15 18:57 我们正在使用 test-jar 依赖项,所以这是“不会修复”。因此,显然我们需要弄清楚如何使用 test-jar 依赖项.. 或者正如您所说,它需要手动构建 test-jar,在这种情况下,我只需复制并粘贴该类。顺便说一句,如果您想要一些积分,您可以将此作为答案,我会奖励。

标签: maven apache-spark


【解决方案1】:

您可以通过添加<type>test-jar</type> 将依赖项添加到Spark 的test-jar。例如,对于基于 Scala 2.11 的 Spark 1.5.1:

<dependency>
  <groupId>org.apache.spark</groupId>
  <artifactId>spark-core_2.11</artifactId>
  <version>1.5.1</version>
  <type>test-jar</type>
  <scope>test</scope>
</dependency>

这个依赖提供了Spark的所有测试类,包括LocalSparkContext

【讨论】:

    【解决方案2】:

    我来到这里是希望找到一些在 SBT 中做同样事情的灵感。作为其他 SBT 用户的参考:为 Spark 2.0 应用 pattern of using test-jars in SBT 会导致:

    libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.0.0" classifier "tests"
    libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.0.0" classifier "tests"
    

    【讨论】:

    • 这对sbt用户肯定有用
    【解决方案3】:

    如果你想添加测试 jars,可以继续添加 SBT,如下所述:

    
    version := "0.1"
    
    scalaVersion := "2.11.11"
    val sparkVersion = "2.3.1"
    
    libraryDependencies ++= Seq(
      "org.apache.spark" %% "spark-core" % sparkVersion % Provided,
      "org.apache.spark" %% "spark-core" % sparkVersion % Test classifier "tests",
      "org.apache.spark" %% "spark-core" % sparkVersion % Test classifier "test-sources",
      "org.apache.spark" %% "spark-sql" % sparkVersion % Provided,
      "org.apache.spark" %% "spark-sql" % sparkVersion % Test classifier "tests",
      "org.apache.spark" %% "spark-sql" % sparkVersion % Test classifier "test-sources",
      "org.apache.spark" %% "spark-catalyst" % sparkVersion % Test classifier "tests",
      "org.apache.spark" %% "spark-catalyst" % sparkVersion % Test classifier "test-sources",
      "com.typesafe.scala-logging" %% "scala-logging" % "3.9.0",
      "org.scalatest" %% "scalatest" % "3.0.4" % "test")
    

    如果你想将它添加到 MAVEN 依赖项上,你可以通过如下所述来完成:

    
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.parent.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.parent.version}</artifactId>
            <version>${spark.version}</version>
            <classifier>tests</classifier>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
    
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.parent.version}</artifactId>
            <version>${spark.version}</version>
            <classifier>test-sources</classifier>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
    
    <dependencies>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-23
      • 1970-01-01
      • 2019-06-26
      • 2012-12-09
      • 1970-01-01
      • 2017-08-17
      • 2011-12-06
      相关资源
      最近更新 更多