我已经编写了一段代码,可以从HDSF加载多个.csv文件,而我只想加载所有值都与预定义架构匹配的文件。
为此,我设置了mode =“ FAILFAST”,希望在尝试使用损坏的值加载csv文件时,我的代码会引发错误。但是,由于延迟评估(这是我的猜测),直到调用诸如.show()之类的操作,该错误才会显示。
这是我的代码:
for file in files:
try:
df=spark.read.csv(file, schema=someschema, mode="FAILFAST")
#some transformations
except:
print("File no loaded due to values not matching schema")
为我的except语句发现的唯一捕获错误的方法是在加载数据帧(例如df.show())后强制执行操作。但是,对我来说,这样做似乎有点奇怪。还有其他方法可以强制我的代码在加载csv文件后立即引发错误。如果无法做到这一点,您将如何只加载所有值都与模式匹配的文件?谢谢:)