执行 sqoop 时出错 - 合并

error while performing sqoop - merge

我试图通过从 netezza 服务器导入数据来 sqoop 合并两个数据集。 以下是数字为 id 和字母为 name 的数据集:

以下两个表都是使用以下命令从 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?

尝试了我知道的所有方法,但仍然出现错误。

请帮忙。

您确定 id 列存在,这可能是区分大小写的问题。

检查您是否在 Netezza 中指定了 ID

如果是,请尝试 --merge-key ID