在以“ FAILFAST”模式加载Spark DataFrame时如何处理错误。懒惰评估问题

时间:2019-03-29 14:49:41

标签: python apache-spark pyspark apache-spark-sql

我已经编写了一段代码,可以从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文件后立即引发错误。如果无法做到这一点,您将如何只加载所有值都与模式匹配的文件?谢谢:)

0 个答案:

没有答案