关于使用Hive在Spark引擎上运行SQL语句,求七天中最大连续登录次数报错问题。

报错类型:Error: Error while processing statement: FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask. Spark job failed during runtime. Please check stacktrace for the root cause. (state=42000,code=3)。

翻译过来是:spark作业在运行时失败。请检查stacktrace以了解根本原因。

这种报错太笼统,不好找具体哪里出了问题,如果想看可以去spark日志中看一下。

原因:使用Spark引擎+使用datediff函数(在子查询且开窗使用)+时间字段使用的是String类型。

解决:方法一:注释掉Hive中配置中 hive-site.xml 中使用的spark引擎。

<property>
    <name>hive.execution.engine</name>
    <value>spark</value>
</property>
<property>
    <name>hive.spark.client.connect.timeout</name>
    <value>10000ms</value>
</property>

方法二:时间字段使用Date类型。

Hive默认使用的是MR引擎,所以注释掉spark引擎不会有影响,但是运行较慢。如果是自己练习,更换引擎即可,如果是项目,时间字段还是使用Date类型较好。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值