如何解决spark-sql 3 CLI 客户端不再支持 hive.cli.errors.ignore?
Spark 3.0.1 的 spark-sql CLI 客户端似乎不再正确支持 hive.cli.errors.ignore
属性。
在 Spark 2.4.5 中,此命令按预期工作,在遇到错误查询时以错误代码退出:
$ spark-sql -hiveconf "hive.cli.errors.ignore=false" -S -e "set hive.cli.errors.ignore; select bad; select 'good';"
... (log lines removed) ...
hive.cli.errors.ignore false
Error in query: cannot resolve '`bad`' given input columns: []; line 1 pos 8;
'Project ['bad]
+- OneRowRelation
$ echo $?
1
通过继续下一个查询,将其更改为 hive.cli.errors.ignore=true
也可以正常工作。
$ spark-sql -hiveconf "hive.cli.errors.ignore=true" -S -e "set hive.cli.errors.ignore; select bad; select 'good';"
... (log lines removed) ...
hive.cli.errors.ignore true
Error in query: cannot resolve '`bad`' given input columns: []; line 1 pos 8;
'Project ['bad]
+- OneRowRelation
good
$ echo $?
0
但是,当在 3.0.1 版本的 spark-sql 上运行相同的命令时,它的行为就好像忽略错误始终为真。我不希望在这种情况下运行返回“good”的查询:
$ spark-sql -hiveconf "hive.cli.errors.ignore=false" -S -e "set hive.cli.errors.ignore; select bad; select 'good';"
... (log lines removed) ...
hive.cli.errors.ignore false
Error in query: cannot resolve '`bad`' given input columns: []; line 1 pos 8;
'Project ['bad]
+- OneRowRelation
good
$ echo $?
0
这是一个错误吗?如果是这样,我将发布到 Spark 错误跟踪器。
或者是否有不同的方式来配置 hive 属性或重新创建旧行为的新属性?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。