我在Microsoft Sql
上有一个表,字段ID设置了自动递增。
我想将数据从hadoop
导出到此sql
表。
我创建了一个hiveql
表来镜像sql
表,
我尝试在sql
上自动递增的Id列上设置null值,但没有成功。
有什么争论或方法可以做到这一点?
sqoop export
--connect "jdbc:sqlserver://<sqlserverhost>:<sqlserver port>;database=<sqlserver database>
--username="";
--password=""
--table "MYTABLE"
--catalog""
-- columns "ID, NAME, VALUE1, VALE2"
-- verbose
您是否尝试省略自动递增列?,在CCD_ 7中运行良好,也许CCD_ 8也做同样的事情。
在我的例子中,我创建了一个自动递增表:
CREATE TABLE users (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
topic CHAR(30) NOT NULL,
hits CHAR(30) NOT NULL
PRIMARY KEY (id)
);
我在文件中有这些数据
Didar,sqoop,30
Rahul,scala,120
myself,cca175,180
Nikita,spark,80
Mithun,spark,1
和sqoop export
sqoop export
--connect jdbc:mysql://quickstart.cloudera:3306/retail_export
--username root
--password cloudera
--export-dir /user/cloudera/files/user.csv
--table users
--columns "name, topic, hits"
--outdir /home/cloudera/outdir
--bindir /home/cloudera/bindir
结果
+----+--------+--------+------+
| id | name | topic | hits |
+----+--------+--------+------+
| 1 | Didar | sqoop | 30 |
| 2 | Rahul | scala | 120 |
| 3 | myself | cca175 | 180 |
| 4 | Mithun | spark | 1 |
| 5 | Nikita | spark | 80 |
+----+--------+--------+------+