我试图通过从netezza服务器导入数据来sqoop合并两个数据集。 以下是数字设置,数字为 id ,字母为名称:
以下两个表都是使用以下命令从netezza导入的:
sqoop import --connect neteeza_url --username uname --password pwd --table sqoop_merge_1 --hive-import --warehouse-dir hdfs_pth --create-hive-table sqoop_merge_1 -m 1
sqoop_merge_1:
1,a
2,b
3,c
4,d
5,e
sqoop_merge_2:
4,z
5,y
命令是:
sqoop merge --new-data hdfs_path/sqoop_merge_2 --onto hdfs_path/sqoop_merge_1 --target-dir hdfs_path/sqoop_merge_output --jar-file jar_file_path/sqoop_merge_class_name.jar --class-name sqoop_merge_class_name --merge-key id
我使用codegen命令创建了jar文件:
sqoop codegen --connect netezza_url --username uname --password -pwd --table sqoop_merge_1
但是我收到以下错误:
java.io.IOException: Cannot join values on null key. Did you specify a key column that exists?
尝试了我所知道的所有方法,但仍然收到错误。
请帮忙。
答案 0 :(得分:0)
如果您确定id
列存在,由于区分大小写,可能会出现问题。
检查您是否在Netezza中指定了ID
?
如果是,请尝试使用--merge-key ID
。