gpt4 book ai didi

hadoop - 无法使用具有不同分隔符的 Sqoop 从 MySql 导入数据

转载 作者:可可西里 更新时间:2023-11-01 16:39:47 27 4
gpt4 key购买 nike

作为Hadoop领域的初学者,我正在尝试使用Sqoop工具(版本:Sqoop 1.4.6-cdh5.8.0)。

虽然我引用了各种网站和论坛,但我无法找到可行的解决方案,我可以使用 , 以外的任何其他分隔符导入数据。

PFB 我用过的代码:

--- 连接MySql,在字符串中用,创建表和记录。

mysql> create database GRHadoop;
Query OK, 1 row affected (0.00 sec)

mysql> use GRHadoop;
Database changed
mysql> Create table sitecustomer(Customerid int(10), Customername varchar(100),Productid int(4),Salary int(20));
Query OK, 0 rows affected (0.22 sec)

mysql> Insert into sitecustomer values(1,'Sohail',100,50000),(2,'Reshma',200,80000),(3,'Tom',200,60000);
Query OK, 3 rows affected (0.06 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> Insert into sitecustomer values(4,'Su,kama',300,50000),(5,'Ram,bha',100,80000),(6,'Suz',200,60000);
Query OK, 3 rows affected (0.03 sec)
Records: 3 Duplicates: 0 Warnings: 0

Sqoop 命令:

sqoop import \
--connect jdbc:mysql://127.0.0.1:3306/GRHadoop \
--username root \
--password cloudera \
--table sitecustomer \
--input-fields-terminated-by '|' \
--lines-terminated-by "\n" \
--target-dir /user/cloudera/GR/Sqoop/sitecustomer_data \
--m 1;

预期输出:

1|Sohail|100|50000

2|Reshma|200|80000

3|Tom|200|60000

4|Su,kama|300|50000

5|Ram,bha|100|80000

6|Suz|200|60000

实际输出:

1,Sohail,100,50000

2,Reshma,200,80000

3,Tom,200,60000

4,Su,kama,300,50000

5,Ram,bha,100,80000

6,Suz,200,60000

请指导我在哪里弄错了。

最佳答案

--input-fields-terminated-by参数是告诉Sqoop在export时如何解析输入文件。您应该使用 --fields-terminated-by,此参数控制输出的格式。

sqoop import \ 
--connect jdbc:mysql://127.0.0.1:3306/GRHadoop \
--username root \
--password cloudera \
--table sitecustomer \
--fields-terminated-by '|' \
--lines-terminated-by "\n" \
--target-dir /user/cloudera/GR/Sqoop/sitecustomer_data \
--m 1;

关于hadoop - 无法使用具有不同分隔符的 Sqoop 从 MySql 导入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43643765/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com