FAQ-sqoop --columns参数说明
更新时间: 2025-04-15 21:43:52
阅读 7191
FAQ-sqoop --columns参数问题排查
问题描述/异常栈
sqoop会使用–columns去匹配列 Sqoop的export的执行思路为: 将HDFS文件按照指定的分隔符进行分隔 拼接insert into tableName (columna, columnb, ...) values (HDFS分隔的结果) 举例来说,如果HDFS文件是: 1,aaron,100 2,coco,200 mysql表test结构是: em_id,em_name,em_salary 3个字段 这时候sqoop会拼接成: insert into test (em_id,em_name,em_salary) values (1,'aaron',100),(2,'coco',200); 注意这里的列名是数据库中的列不是hive中的 DDB或者MySQL中首字段是自增id 按照上面的示例,如果MySQL表字段为id, em_id, em_name, em_salary,此时sqoop拼接的默认SQL是:insert into test (id, em_id, em_name, em_salary) values (1,'aaron',100),(2,'coco',200); 这时候MySQL就报错了。 此时可以通过–columns 来解决,–columns "em_id,em_name,em_salary" 这样指定后,就会替换insert into test 后面的字段,变成insert into test (em_id,em_name,em_salary) values (1,'aaron',100),(2,'coco',200);解决方案
在更多参数中添加参数 - -verbose
作者:焦巍
文档反馈
以上内容对您是否有帮助?