4.2.13 命令&参数:merge
将HDFS中不同目录下面的数据合并在一起并放入指定目录中
创建JavaBean:
$ bin/sqoop codegen \
--connect jdbc:mysql://hadoop102:3306/company \
--username root \
--password 000000 \
--table staff \
--bindir /home/admin/Desktop/staff \
--class-name Staff \
--fields-terminated-by "\t"
开始合并:
$ bin/sqoop merge \
--new-data /test/new/ \
--onto /test/old/ \
--target-dir /test/merged \
--jar-file /home/admin/Desktop/staff/Staff.jar \
--class-name Staff \
--merge-key id
结果:
1 AAA MALE
2 BBB MALE
3 CCC MALE
4 DDD MALE
6 DDD FEMALE
参数
序号 | 参数 | 说明 |
---|---|---|
1 | --new-data <path> |
HDFS 待合并的数据目录,合并后在新的数据集中保留 |
2 | --onto <path> |
HDFS合并后,重复的部分在新的数据集中被覆盖 |
3 | --merge-key <col> |
合并键,一般是主键ID |
4 | --jar-file <file> |
合并时引入的jar包,该jar包是通过Codegen工具生成的jar包 |
5 | --class-name <class> |
对应的表名或对象名,该class类是包含在jar包中的 |
6 | --target-dir <path> |
合并后的数据在HDFS里存放的目录 |