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
这是bug吗?如果是这样,我将发布到spark bug追踪器。
或者是否有其他方法来配置配置单元属性或新属性,以重新创建旧行为?
暂无答案!
目前还没有任何答案,快来回答吧!