我们是否只需按HDFS列的顺序提供SQL列名称?
示例: 我们按以下格式更新SQL表:
sqoop export
--connect "jdbc:sqlserver://blah;database=blahblah"
--username="user" --password="pass"
--driver "com.microsoft.sqlserver.jdbc.SQLServerDriver"
--table "blahblhablha" --export-dir "/blah"
--columns "id,name,age" --update-key "id"
我的SQL表的格式为:
+--+---+----+
|id|age|name|
+--+---+----+
当我执行上面的sqoop命令时,它运行良好,但冻结率为100%,从未完成作业。
列是否必须按顺序排列?(我不这么认为)
当我按照相同的顺序--columns "id,age,name"
时,它运行正常
我在这里找不到什么东西?
提前致谢
答案 0 :(得分:0)
这取决于HDFS中数据的顺序。让我们使用以下CSV数据作为示例:
1,55,"John Smith"
2,22,"Jason Jonas"
...
如果--columns
参数设置为id,name,age
,则Sqoop将创建采用INSERT INTO blahblahblah (id, name, age) VALUES (1, 55, "John Smith")
形式的插入语句。这应该不起作用,因为"John Smith"
显然不是整数。所以,这里的订单很重要。
有关详细信息,请参阅docs;有关更多帮助,请参阅user@sqoop.apache.org邮件列表。