我在HDFS中有一个以制表符分隔的文本文件,并希望将其导出到MySQL表中。
由于textfile中的行没有数字id,如何导出到SQL INSERT(自动增量)期间自动设置ID的表?
如果我尝试导出(id是表中最后定义的属性),我会得到
java.util.NoSuchElementException
at java.util.AbstractList$Itr.next(AbstractList.java:350)
at entity.__loadFromFields(entity.java:996)
如果我使用自动生成的类并修改它以排除id属性,我会得到
java.io.IOException: java.sql.SQLException: No value specified for parameter 27
其中参数27为'id'。
版本是Sqoop 1.3.0-cdh3u3
答案 0 :(得分:3)
在Sqoop 1.4.1中,在对应于自动增量字段的文本文件字段位置写一个“null”。导出到mySQL后,您将看到一个递增的自动签名ID。
答案 1 :(得分:0)
正如Sqoop邮件列表上的某人所说:
答案 2 :(得分:0)
我的源表是HIVE。对我有用的是我添加了一个名为id int的列,并将该列填充为NULL。在sqoop之后,mysql将接收insert(id,X,Y)值(null,“x_value,”y_value“)。然后mysql知道将id填充为自动增量。