【问题标题】:Writing spark unit test without installing Spark在不安装 Spark 的情况下编写 Spark 单元测试
【发布时间】:2020-02-26 17:11:57
【问题描述】:

我正在尝试为 spark 代码编写单元测试。 我知道我们可以安装 Spark,然后使用 SparkConf 和 SparkContext 编写测试。

但是,我想检查是否有任何方法可以在不安装 Spark 的情况下编写单元测试,因为我的客户不想在 Jenkins 服务器上安装 Spark,我们打算在其中作为自动化过程的一部分运行我们的测试。

【问题讨论】:

  • 如果你有一个Maven 项目,你可以添加依赖。然后使用 Spark API 创建一个新会话并将 master 设置为local。您可能面临的问题是在每个单元测试类中创建 SparkContext 的成本。它不会在几毫秒内运行。
  • 我们正在使用 Python 和 Spark。尝试使用 Unittest 框架运行单元测试。你确定我们不需要在 Jenkins 上设置 SPARK_HOME 或安装 Spark?
  • 我们正在使用 Python、PySpark、Unittest 和 Spark。您确定要创建我们不需要设置 SPARK_HOME 或在 Jenkins 机器上安装 Spark 的 SparkConf 对象吗?

标签: apache-spark


【解决方案1】:

您可以通过代码设置 Spark 在本地集群中运行:

val conf = new SparkConf().setAppName(appName).setMaster("local")
val context = new SparkContext(conf)

然后,您可以使用context 创建您的数据的RDDs 进行测试:

context.makeRDD

【讨论】:

  • 我们正在使用 Python 和 Spark。您确定要创建我们不需要设置 SPARK_HOME 或在 Jenkins 机器上安装 Spark 的 SparkConf 对象吗?
  • 我们正在使用 Python、PySpark、Unittest 和 Spark。您确定要创建我们不需要设置 SPARK_HOME 或在 Jenkins 机器上安装 Spark 的 SparkConf 对象吗?
  • 快速搜索显示您也可以使用 PySpark 执行此操作 - stackoverflow.com/questions/33811882/…
猜你喜欢
  • 2011-07-27
  • 2017-09-29
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 2022-10-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
相关资源
最近更新 更多