【发布时间】:2018-07-01 15:43:22
【问题描述】:
我一直在使用 Spark Dataset API 对 JSON 执行操作,以根据需要提取某些字段。但是,当我提供的让 spark 知道要提取哪个字段的规范出错时,spark 会吐出一个
org.apache.spark.sql.AnalysisException
如何在这样的分布式处理场景中处理未经检查的运行时异常?我知道抛出一个 try-catch 会让事情得到排序,但是处理这种情况的推荐方法是什么
dataset = dataset.withColumn(current, functions.explode(dataset.col(parent + Constants.PUNCTUATION_PERIOD + child.substring(0, child.length() - 2))));
【问题讨论】:
-
如果被抓住了,你会怎么做?
-
将异常包装在我的自定义异常之一中并从那里抛出,以供调用对象用来处理异常
-
但实际上并不意味着停止、修复和重新运行。这更符合我的观点。
-
嗯,是的,这是一种方法,但是用我自己的异常包装诸如此类的运行时异常是个好主意??
-
不,没有争议——这很好,但结果是我们可能仍然需要在修复后重新运行。至少在 BI 和 DWH 中一直如此。
标签: java apache-spark exception-handling distributed-computing apache-spark-dataset