执行 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
。
我试图通过从 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
。