sqoop导入数据时间日期类型错误

一个问题困扰了很久,用sqoop import从mysql数据库导入到HDFS中的时候一直报错,最后才发现是一个时间日期类型的非法值导致。

hive只支持timestamp类型,而mysql中的日期类型是datetime, 当datetime的值为0000-00-00 00:00:00的时候,sqoop import成功,但是在hive中执行select语句查询该字段的时候报错。

解决方法是在创建hive表时用string字段类型。

sqoop导入数据时间日期类型错误,布布扣,bubuko.com

时间: 2024-10-13 22:52:13

sqoop导入数据时间日期类型错误的相关文章

使用sqoop1.4.4从oracle导入数据到hive中错误记录及解决方案

在使用命令导数据过程中,出现如下错误 sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.29.16:1521/testdb --username NAME --passord PASS --verbose -m 1 --table T_USERINFO 错误1:File does not exist: hdfs://opt/sqoop-1.4.4/lib/commons-io-1.4.jar FileNotFoundEx

java和mysql之间的时间日期类型传递

mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038date 3bytes xxxx-xx-xx 1000-01-01到9999-12-31year 1bytes xxxx 1901到2155time 3bytes xx:xx

07、MySQL—时间日期类型

时间日期类型 1.Date 日期类型:系统使用三个字节来存储数据,对应的格式为:YYYY-mm-dd,能表示的范围是从1000-01-01 到9999-12-12,初始值为0000-00-00 2.Time 时间类型:能够表示某个指定的时间,但是系统同样是提供3个字节来存储,对应的格式为:HH:ii:ss,但是mysql中的time类型能够表示时间范围要大的多,能表示从-838:59:59~838:59:59,在mysql中具体的用处是用来描述时间段. 3.Datetime 日期时间类型:就是将

sqoop导入时删除string类型字段的特殊字符

如果你指定了\n为sqoop导入的换行符,mysql的某个string字段的值如果包含了\n, 则会导致sqoop导入多出一行记录. 有一个选项 -hive-drop-import-delims Drops \n, \r, and \01 from string fields when importing to Hive. 这样\n \r 和\01都被自动删除,不会捣乱了.sqoop导入时删除string类型字段的特殊字符,布布扣,bubuko.com

Hibernate @Temporal 注解处理Java与Mysql时间日期类型的映射关系

2017-4-2 在 Java 中使用 java.util.Date 和 java.util.Calendar 表示时间.日期类型.在 Mysql 中使用 YEAR.DATE.TIME.TIMESTAMP.DATETIME 五种数据类型表示时间日期,由此引出了 Java 日期类型跟数据库的日期类型怎么映射的问题.本文总结了使用 Hibernate @Temporal 注解的解决方案. 使用 @Temporal 注解修饰 Java 实体类的数据类型 指定 @Temporal value 属性,其中

sqlserver导入数据时常出现的错误解答

在做SSIS项目的Data Coversion时,经常会遇到类似如下两个问题: 1.Validating (Error) Messages * Error 0xc02020f4: Data Flow Task 1: The column "xxxx" cannot be processed because more than one code page (936 and 1252) are specified for it. (SQL Server Import and Export

sqoop 导入数据到HDFS注意事项

今天碰到不少问题,记录一下. 分割符的方向问题 首先sqoop的参数要小心, 从数据库导出数据,写到HDFS的文件中的时候,字段分割符号和行分割符号必须要用 --fields-terminated-by 而不能是 --input-fields-terminated-by --input前缀的使用于读文件的分割符号,便于解析文件,所以用于从HDFS文件导出到某个数据库的场景. 两个方向不一样. 参数必须用单引号括起来 官方文档的例子是错的: The octal representation of

sqoop导入数据''--query搭配$CONDITIONS''的理解

sqoop在导入数据时,可以使用--query搭配sql来指定查询条件,并且还需在sql中添加\$CONDITIONS,来实现并行运行mr的功能. 运行测试 测试均基于sqoop1,mysql数据准备如下. (1)只要有--query+sql,就需要加\$CONDITIONS,哪怕只有一个maptask. # 只有一个maptask[[email protected] /kkb/bin]$ sqoop import --connect jdbc:mysql://node01:3306/sqoop

Sqoop导入数据到Hadoop代理执行

最近在做执行服务器,它根据用户输入的sqoop命令代理向hadoop提交任务执行,目前需要支持的数据源包括mysql.oracle以及公司自己的分布式数据库DDB,数据导入的目的地可以是HDFS或者hive表. 首先来讨论一下对hive的支持,hive是作为一个支持JDBC的数据库,它的数据分成两部分,元数据和数据,元数据保存在一个本地的数据库,例如嵌入式数据库derby或者mysql,主要是存储一些关于hive的数据库和表定义的一些信息(关于元数据库表需要补充一下,这些表的创建都是hive完成