如何识别以下重命名列将产生哪种异常以及如何在pyspark中处理:
def rename_columnsName(df, columns): #provide names in dictionary format
if isinstance(columns, dict):
for old_name, new_name in columns.items():
df = df.withColumnRenamed(old_name, new_name)
return df.show()
else:
raise ValueError("'columns' should be a dict, like {'old_name':'new_name', 'old_name_one more':'new_name_1'}")
如何通过使用数据集生成异常来测试它。
2条答案
按热度按时间sbdsn5lh1#
我找到了这个问题的解决方案,我们可以像python一样在pyspark中处理异常。如:
2q5ifsrm2#
下面是一个如何测试抛出异常的pyspark函数的示例。在本例中,我们将验证如果排序顺序为
"cats"
.注意,测试正在验证所提供的特定错误消息。
您可以向您的服务器提供无效的输入
rename_columnsName
函数并验证错误消息是否符合预期。其他一些提示:
按照示例在此处和此处重命名列。你不应该打电话
withColumnRenamed
在一个循环中。使用标准转换格式编写Dataframe转换,以便它们可以与Dataframe转换链接
使用pytest descripe组织这些类型的测试
请查看这个测试文件以获得一组示例