Kettle报错:使用mysql向hive中插入数据只能插入两条的错误

错误展示

我们在用kettle,使用mysql向hive中插入数据的时候,创建好了一个转换,里面的操作也全部完成了之后,在执行时爆出一下错误

例如我这里写入的表输入为:

表输出为:

解决办法

看起来是一点问题也没有,但是一执行就会报上述错误,这时只需要在我们的/opt/installs/hive/conf下创建一个 .hiverc文件,在里面写入以下内容即可

set hive.stats.column.autogather=false;

这时再次运行,即成功!(甚至都不需要重启hiveserver2)

补充一个新错误(小问题)

还有一个小问题,如果我们表输入的字段里面有date类型的值的时候,我们执行运行kettle的时候也会报一个错误,

即:Caused by: java.sql.SQLFeatureNotSupportedException: Method not supported

2024/09/11 17:19:29 - 表输出.0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 
2024/09/11 17:19:29 - 表输出.0 - Error setting value #9 [Date] on prepared statement
2024/09/11 17:19:29 - 表输出.0 - Method not supported
2024/09/11 17:19:29 - 表输出.0 - 
2024/09/11 17:19:29 - 表输出.0 -     at org.pentaho.di.core.row.value.ValueMetaBase.setPreparedStatementValue(ValueMetaBase.java:5477)
2024/09/11 17:19:29 - 表输出.0 -     at org.pentaho.di.core.database.Database.setValue(Database.java:1080)
2024/09/11 17:19:29 - 表输出.0 -     at org.pentaho.di.core.database.Database.setValues(Database.java:1096)
2024/09/11 17:19:29 - 表输出.0 -     ... 4 more
2024/09/11 17:19:29 - 表输出.0 - Caused by: java.sql.SQLFeatureNotSupportedException: Method not supported
2024/09/11 17:19:29 - 表输出.0 -     at org.apache.hive.jdbc.HivePreparedStatement.setDate(HivePreparedStatement.java:460)
2024/09/11 17:19:29 - 表输出.0 -     at org.pentaho.di.core.row.value.ValueMetaBase.setPreparedStatementValue(ValueMetaBase.java:5412)
2024/09/11 17:19:29 - 表输出.0 -     ... 6 more

这个问题也很好解决,通过查看错误,发现是 Date 类型的错误,所以,修改表输入中的 SQL 语句:

只需将表输入中date字段所在的地方,将默认的字段格式化以下即可

例如:

SELECT
  id
, name
, age
, gender
, province
, city
, region
, phone
, date_format(birthday,'%Y-%m-%d') birthday
, hobby
, date_format(register_date,'%Y-%m-%d %h:%i:%s') register_date
FROM kettle_demo.t_user

此时问题解决!运行正常!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值