大家好,我正在使用spark scala中的save方法将Dataframe保存在表中。在我的代码中,我必须在代码中提到,如果这个save stmt成功完成,那么我需要执行下一步,但是这个save方法在成功加载数据后没有给出任何真假值,因此我无法在if stmt中写入查询结果对还是错。有没有办法确定它是否成功完成?
如果我传递了任何错误的细节,比如databasename或者错误的tablename,那么它也会显示结果:unit=(),所以我无法识别失败的案例或者传递案例。
val result=df.write.format("com.hortonworks.spark.sql.hive.llap.HiveWarehouseConnector").option("database","dbname").option("table","tablename").mode("append").save()
在下一个条件中,我需要检查结果值(成功或不成功)
i.e. if (result==true){
next stsmt
}
else{
exit
}
1条答案
按热度按时间wqnecbli1#
save
方法总是返回类型unit
,因为这个always else块将在if else语句中执行。尝试使用if-else语句,而不是if-else语句
Try
,Success
&Failure
. 在Success
调用下一个函数&Failure
抛出错误或异常。更多信息请查看下面的代码。失败
成功