除了加载数据之外如何写try

use*_*820 6 python python-3.x pyspark

我对编码很陌生,所以我为这个愚蠢的问题道歉。我正在编写一个 Spark 函数,它接受文件路径和文件类型并创建一个数据帧。如果输入无效,我只想打印某种错误消息并返回一个空数据帧。我会使用 try except 吗?

def rdf(name, type):
   try:
      df=spark.read.format(type).load(name)
      return df
   except ____ as error:
      print(error)
      return "" #I want to return an empty RDD here, but I can't figure out how to make one
Run Code Online (Sandbox Code Playgroud)

我怎么知道____里有什么?我尝试了 org.apache.spark.SparkException ,因为这是我在将 .csv 文件作为镶木地板传递时遇到的错误,它破坏了,但不起作用

Raf*_*ros 7

您可以在 try-except 块中捕获多个异常;例如:

def rdf(name, type):
   try:
      df=spark.read.format(type).load(name)
      return df
   except (SparkException, TypeError) as error:
      print(error)
      return ""
Run Code Online (Sandbox Code Playgroud)

您可以替换该元组或向该元组添加错误。

使用 aException可能会消除与代码无关的错误(如名称是 S3 路径时的网络问题)。这可能是您不希望您的程序处理的事情。

  • 从哪里导入“SparkException”? (3认同)