我是Spark的新手并试图找到自己的方式。
我有一个Spark应用程序,它在数据集上运行复杂的地图功能。此映射函数可能因主要与数据相关的原因而失败。如何获得有关出错的有意义的信息?我不知道从哪里开始。
非常感谢!
答案 0 :(得分:0)
如果要编写单元测试,可以从集合中生成数据集,使用map函数对其进行映射,并使用您喜欢的测试套件使用collect测试结果。
如果您正在使用PySpark,我真的不知道如何调试Spark Job,但是使用分布式计算引擎,调试模式总是一团糟,所以我甚至不认为它是#39值得探索这条道路。
在我的公司,当我们想要测试特定功能的逻辑时,我们通常会进行单元测试,所以你应该好好去。
此答案应涵盖您所需的内容:How do I unit test PySpark programs?
答案 1 :(得分:0)
好的,所以这确实可行,但也有一些陷阱。
一般来说,创建一个封装地图函数结果的类,例如
class CalcResult(object):
def __init__(self):
self.dataResult=None
self.TraceBackStr=None
self.wasError=None
然后,您可以测试wasError字段以记录异常。
异常对象不能是回溯对象,因为它们不可选。所以,我建议使用格式化的字符串。