错误展示
我们在用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
此时问题解决!运行正常!
版权归原作者 scc2140 所有, 如有侵权,请联系我们删除。