如果数据库类型是 date类型的就比较麻烦了,直接搞进hive 不行,因为hive只有timestamp,而去format还是 yyyy-mm-dd hh:mm:ss的
有2个办法,先导入临时表 ,临时表是string的类型(String的format是 yyyy-mm-dd),然后再往正式表里插
insert overwrite table adventureworksdw.dimdate select * from adventureworksdw.dimdate2;
我使用第二种办法,query 导入
import --connect jdbc:mysql://prchaz02823:3306/adventureworksdw2008r2 --username root --password root #--table #DimDate2 --query 'SELECT DateKey,cast(FullDateAlternateKey as datetime) FullDateAlternateKey ,DayNumberOfWeek,EnglishDayNameOfWeek,DayNumberOfMonth,DayNumberOfYear,WeekNumberOfYear,EnglishMonthName,monthNumberOfYear,CalendarQuarter,CalendarYear ,CalendarSemester,FiscalQuarter,FiscalYear,FiscalSemester frOM DimDate2 WHERE $CONDITIONS' --split-by DateKey --null-string '\\N' --null-non-string '\\N' --split-by DateKey --target-dir /home/dimdate_txt --hive-import --hive-table adventureworksdw.dimdate2 --map-column-hive FullDateAlternateKey=timestamp --hive-overwrite #--direct
把 date类型的FullDateAlternateKey 强制转换成datetime(主要是为了yyyy-mm-dd hh:mm:ss这个format), 然后指定--split-by
这样在hive 中就不需要中间表了
我这里使用的中间目录,
--target-dir /home/dimdate_txt
否则会跑到默认的目录去,这个目录肯定是会生成的。
在你跑下一次的时候,会报错该目录已经存在,可以有2种办法 一是删掉目录,二是使用append 好像.
相关推荐
sqoop用于连接关系型数据库与非关系型数据库,支持hadoop2.0.0及其以上的版本,部署简单,方便使用。
叶梓老师整理的Hadoop2.2.0+Hbase0.98.4+sqoop-1.4.4+hive-0.98.1安装手册,非常实用
sqoop-1.4.4-cdh5.1.0.tar
Hadoop集群搭建必备安装包,包括zookeeper3.4.12+hbase1.4.4+sqoop1.4.7bin_hadoop-2.6.0+kafka2.10亲测可用。
sqoop-1.4.6-cdh5.5.0.tar.gz
Hadoop2.2.0+Hbase0.98.1+Sqoop1.4.4+Hive0.13完全安装手册,经测试运行正常。
Sqoop服务器 :male_sign: 个人资料이름오승재임찬기 역할 리드 개발자 Github :gear: 依赖模块 " dependencies " : { " aws-sdk " : " ^2.817.0 " , " clean-css " : " ~4.1.11 " , " constantinople " : " ~3.1.1 ...
1.4.4 类型 模式 函数 用户自定义函数 过滤UDF 计算UDF 加载UDF 数据处理操作 加载和存储数据 过滤数据 分组与连接数据 对数据进行排序 组合和分割数据 Pig实战 并行处理 参数代换 ...
1.4.4 类型 模式 函数 用户自定义函数 过滤UDF 计算UDF 加载UDF 数据处理操作 加载和存储数据 过滤数据 分组与连接数据 对数据进行排序 组合和分割数据 Pig实战 并行处理 参数代换 第12章 Hive 1.1 安装Hive 1.1.1 ...