yuhaiyang 发表于 2018-1-29 17:35:41

sqoop1 从sqlserver导出数据到HDFS报错

sqlserver数据库中,凡是含有datetime类型字段的表,都报一样的错误,不含datetime类型的表则导出成功
环境是:
sqoop1.4.6
jdk1.8
sqljdbc42.jar

(注,我这里试了下mysql数据库-含有datetime字段,是导出成功的)

请问下如何解决


yuhaiyang 发表于 2018-1-29 17:38:42

补充下导出命令:sqoop import--connect "jdbc:sqlserver://xxxx:1433;DatabaseName=test" --username xxx --password 123456 --table AU_User --target-dirhdfs://hadoop1:8020/user/yinhuotong/test06 --m 1   

desehawk 发表于 2018-1-29 18:03:05

本帖最后由 desehawk 于 2018-1-29 18:04 编辑

yuhaiyang 发表于 2018-1-29 17:38
补充下导出命令:sqoop import--connect "jdbc:sqlserver://xxxx:1433;DatabaseName=test" --username xx ...
尝试转换下字段类型,例子如下
sqoop import--connect "jdbc:sqlserver://xxxx:1433;DatabaseName=test" --username xxx --password 123456 --query 'SELECT 。。。。。。。 CAST (lastactive AS TIMESTAMP), ... FROM AU_UserWHERE $CONDITIONS'

yuhaiyang 发表于 2018-1-29 18:15:31

....目标是全表导出,然后发现这个错误了

yuhaiyang 发表于 2018-1-29 18:17:25

desehawk 发表于 2018-1-29 18:03
尝试转换下字段类型,例子如下
sqoop import--connect "jdbc:sqlserver://xxxx:1433;DatabaseName=tes ...
....目标是数据库全表导出,然后发现这个错误了

desehawk 发表于 2018-1-29 18:33:53

yuhaiyang 发表于 2018-1-29 18:17
....目标是数据库全表导出,然后发现这个错误了
那就全表导出啊,select 所有字段不就可以了。不加where,全库导出也没问题啊。使用shell依次执行。

翱翔于天变 发表于 2018-1-30 16:06:32

desehawk 发表于 2018-1-29 18:03
尝试转换下字段类型,例子如下
sqoop import--connect "jdbc:sqlserver://xxxx:1433;DatabaseName=tes ...

感谢,看了你的评论,又了灵感

yuhaiyang 发表于 2018-1-31 14:12:04

desehawk 发表于 2018-1-29 18:33
那就全表导出啊,select 所有字段不就可以了。不加where,全库导出也没问题啊。使用shell依次执行。

谢谢您的回答
页: [1]
查看完整版本: sqoop1 从sqlserver导出数据到HDFS报错