我尝试在cloudera quickstart vm中运行以下sqoop merge命令:
sqoop merge --merge-key department_id \
--new-data /user/cloudera/sqoop_merge/departments_delta \
--onto /user/cloudera/sqoop_merge/departments \
--target-dir /user/cloudera/sqoop_merge/departments_stage \
--class-name departments \
--jar-file
我得到以下错误:
缺少选项的参数:jar文件
在sqoop文档中我发现了这个。
--jar文件指定要从中加载记录类的jar的名称。
我得到的错误为
--类名命令。
这两个命令是什么?传递给这些命令的预期参数是什么?
1条答案
按热度按时间iszxjhcz1#
最初使用将数据导入hdfs时
sqoop
,sqoop
必须为每个导入的表创建了java文件(通常在运行的目录中)sqoop import
命令departments
表或if--outdir
使用的类应位于该位置)。您需要将这些类打包到jar文件中,并在merge
:所以如果你打包
department.java
上课时间mydataTypes.jar
文件比sqoop merge
命令应为:sqoop\u指南
要分析数据集并提取键列,必须使用从以前的导入中自动生成的类。您应该指定类名和jar文件
--class-name
以及--jar-file
. 如果不可用,可以使用codegen
工具。