PySpark 单元测试方法

Posted

技术标签:

【中文标题】PySpark 单元测试方法【英文标题】:PySpark unit test approach 【发布时间】:2016-10-17 21:09:51 【问题描述】:

我编写了一个 PySpark 应用程序,它将一个带有 10 个查找表的大表连接起来,然后使用 df.when 子句对该表进行一些转换。为每个查找表定义 df 并将它们连接起来占用脚本中的大部分行。我如何对此进行单元测试?是否对每个查找表和最终表使用 sc.parallize 并检查转换?你通常如何对 Spark 应用程序进行单元测试?

【问题讨论】:

你检查过this吗? 【参考方案1】:

帅远的评论很好,你应该使用现有的框架,如 py.test 在 Python 中进行测试。为了更直接地回答 DataFrames 的问题,我建议您不要使用 sc.parallelize,而是使用 spark.createDataFrame 来实例化您传递给函数的 DataFrame。然后,您可以在输出上调用 df.collect() 并断言输出中的行数是您所期望的以及列的值。

【讨论】:

以上是关于PySpark 单元测试方法的主要内容,如果未能解决你的问题,请参考以下文章

pyspark 的用户定义函数 (UDF) 是不是需要单元测试?

vs方法上右键没有单元测试

在 pyspark 中聚合 Kolmogorov Smirnov 测试

Java单元测试介绍

Python unittest 模拟 pyspark 链

单元测试