在 spark 中捕获已执行 sql 的异常
Posted
技术标签:
【中文标题】在 spark 中捕获已执行 sql 的异常【英文标题】:Catch exceptions for executed sql in spark 【发布时间】:2019-10-22 22:37:18 【问题描述】:我有一个动态构建的 SQL,其中包含一些损坏的字符串,例如错误的列名或使用 sm 而不是 sum。
当我在这个生成的字符串上执行 sparksession.sql()
时,整个 spark 作业按预期失败,我可以在资源管理器日志中看到所有日志。
有没有办法让我在 try catch 块中捕获这个异常并处理这个异常并按照我的逻辑继续前进。
【问题讨论】:
【参考方案1】:目前这对我有用,但我认为这不是理想的解决方案。
try
return spark.sql(query);
catch (Exception e)
e.getMessage();
对于所有 sql 语法、错误的列或表名查询,这给我带来了 org.apache.spark.sql.AnalysisException
异常。但是我特别无法捕捉到这个异常。
【讨论】:
以上是关于在 spark 中捕获已执行 sql 的异常的主要内容,如果未能解决你的问题,请参考以下文章