黑猴子的家:Sqoop 命令&参数:merge

将HDFS中不同目录下面的数据合并在一起并放入指定目录中

1、数据

new_staff

1       AAA     male
2       BBB     male
3       CCC     male
4       DDD     male

old_staff

1       AAA     female
2       CCC     female
3       BBB     female
6       DDD     female

尖叫提示:上边数据的列之间的分隔符应该为\t,行与行之间的分割符为\n,不要复制,在vim编辑器里面手敲

2、创建数据,上传hdfs

[yinggu@hadoop102 sqoop]$ mkdir tdata
[yinggu@hadoop102 sqoop]$ cd tdata/
[yinggu@hadoop102 tdata]$ mkdir newdata
[yinggu@hadoop102 tdata]$ mkdir olddata
[yinggu@hadoop102 tdata]$ vim newdata/new.txt
[yinggu@hadoop102 tdata]$ vim olddata/old.txt
[yinggu@hadoop102 sqoop]$ ../hadoop-2.8.2/bin/hadoop fs -put tdata/ /

3、创建JavaBean

[victor@node1 sqoop-1.4.7]$ bin/sqoop codegen \
--connect jdbc:mysql://node1:3306/company \
--username root \
--password 000000 \
--table staff \
--bindir /opt/module/sqoop/staff \
--class-name Staff \
--fields-terminated-by "\t"

4、开始合并

[victor@node1 sqoop-1.4.7]$ bin/sqoop merge \
--new-data /tdata/newdata/ \
--onto /tdata/olddata/ \
--target-dir /tdata/merged \
--jar-file /opt/module/sqoop/staff/Staff.jar \
--class-name Staff \
--merge-key id

5、结果

1   AAA MALE
2   BBB MALE
3   CCC MALE
4   DDD MALE
6   DDD FEMALE

6、参数

序号参数说明
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里存放的目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值