FAQ-sqoop --columns参数说明
更新时间: 2024-03-11 02:45:45
阅读 6571
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
文档反馈
以上内容对您是否有帮助?