gpt4 book ai didi

sql-server - 使用jtds驱动程序从hdfs到SQL Server 2005的Sqoop导出失败

转载 作者:行者123 更新时间:2023-12-02 20:07:39 25 4
gpt4 key购买 nike

我正在尝试使用sqoop将数据从hdfs文本文件导出到SQL Server。当我要插入多行时,抛出以下异常:

java.io.IOException: java.sql.SQLException: Incorrect syntax near ','.
at org.apache.sqoop.mapreduce.AsyncSqlRecordWriter.close(AsyncSqlRecordWriter.java:192)
at org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.close(MapTask.java:567)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:675)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:330)
at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408)
at org.apache.hadoop.mapred.Child.main(Child.java:262)
Caused by: java.sql.SQLException: Incorrect syntax near ','.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:368)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResul

我检查了数据是否存在不一致之处,但找不到任何奇怪的地方。

我想知道驱动程序是否受支持?

最佳答案

问题是使用缺省值sqoop / jtds使用逗号分隔的值列表将多个插入语句分组为1引起的。此方法与sqlserver 2005不兼容。要解决此问题,我通过提供--batch参数启用了jdbc-batch插入。

sqlserver 2008支持sqoop / jtds将多个插入语句分组为1的默认方式。

另外,当我使用ms-sql驱动程序尝试相同的操作(不带--batch参数)时,一切正常。不确定ms-sql-driver和sqoop如何一起工作以确保与sql server 2005兼容。

关于sql-server - 使用jtds驱动程序从hdfs到SQL Server 2005的Sqoop导出失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21054611/

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