Q001. Hive 创建表或视图失败,提示“FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.MetaException…failed : (conn=43)Incorrect string value”
答:这是由于 Hive 在初始化 MySQL 的元数据表时使用的编码不支持中文导致的错误,只需要修改提示出错的表或者列的编码即可解决。以下操作适用于采用 MySQL 或 MariaDB 存储元数据的 Hive。
- 采用 root 登录 MySQL,并输入登录密码
mysql -u root -p
- 修改指定的列的编码,参考以下语句。
user hive;
alter table TBLS modify column `VIEW_EXPANDED_TEXT` MEDIUMTEXT CHARACTER set utf8mb4 COLLATE 'utf8mb4_general_ci' NULL DEFAULT NULL ;
alter table TBLS modify column `VIEW_ORIGINAL_TEXT` MEDIUMTEXT CHARACTER set utf8mb4 COLLATE 'utf8mb4_general_ci' NULL DEFAULT NULL;