当前位置: 首页 > news >正文

sqoop Oracle 导入到hive 日期时间消失

sqoop脚本:

sqoop import -D mapred.job.queue.name=highway \
-D mapreduce.map.memory.mb=4096 \
-D mapreduce.map.java.opts=-Xmx3072m \
--connect "jdbc:oracle:thin:@//localhost:61521/LZY2" \
--username LZSHARE \
--password '123456' \
--query "SELECT TO_CHAR(GCRQ, 'YYYY') AS gcrq_year,TO_CHAR(GCRQ, 'MM') AS gcrq_month,TO_CHAR(GCRQ, 'DD') AS gcrq_day,YEAR,TO_CHAR(GCRQ, 'YYYY-MM-DD HH24:MI:SS') AS GCRQ,........TO_CHAR(DELETE_TIME, 'YYYY-MM-DD HH24:MI:SS') AS DELETE_TIME,CREATE_BY,TO_CHAR(CREATE_TIME, 'YYYY-MM-DD HH24:MI:SS') AS CREATE_TIME,UPDATE_BY,TO_CHAR(UPDATE_TIME, 'YYYY-MM-DD HH24:MI:SS') AS UPDATE_TIME,TO_CHAR(INSERT_TIME, 'YYYY-MM-DD HH24:MI:SS') AS INSERT_TIMEFROM LZJHGX.dat_dcsj_time
WHERE TO_CHAR(GCRQ , 'YYYY-MM-DD') < TO_CHAR(SYSDATE, 'YYYY-MM-DD') AND \$CONDITIONS" \
--split-by sjxh \
--hcatalog-database dw \
--hcatalog-table ods_pre_dat_dcsj_time \
--hcatalog-storage-stanza 'stored as orc' \
--num-mappers 20

其中query语句在Oracle中执行时,日期时间都是完整保留的。

但是执行完毕查看hive,却发现日期时间字段都是为NULL。

但如果不做tochar转换会报错:

Error: java.lang.ClassCastException: java.sql.Timestamp cannot be cast to org.apache.hadoop.hive.common.type.Timestamp
那么换个解决思路,将hive表中的timestamp字段改为string类型,这样修改后成功解决。


http://www.mrgr.cn/news/68693.html

相关文章:

  • 数据血缘追踪是如何在ETL过程中发挥作用?
  • 第N6周:中文文本分类-Pytorch实现
  • YOLO可视化界面,目标检测前端页面。
  • 昔日IT圈的热点话题“虚拟化和容器技术路线之争”,现在怎么样了?
  • 使用Docker-Compose安装redis,rabbitmq,nacos,mysql,nginx,tomcat,portainer组件教程
  • 连接到Oracle数据库
  • 【MySQL】零碎知识点(易忘 / 易错)总结回顾
  • vue3 动态路由+动态组件+缓存应用
  • 代码 RNN原理及手写复现
  • 《FreeRTOS的配置与临界段》
  • 【Linux系统】—— 基本指令(二)
  • 建筑安全员题库分享
  • 免费 CRM 软件推荐:2025年国内外这10款系统值得试
  • 【HarmonyOS】not supported when useNormalizedOHMUrl is not true.
  • Hatcher代数拓扑教材
  • 05 SQL炼金术:深入探索与实战优化
  • 继承(c++)
  • 牛客小白月赛104(未补)
  • QT项目之推箱子
  • MySQL库操作
  • 英语介词的介绍
  • DB157S-ASEMI小贴片整流桥DB157S
  • PySide6百炼成真系列(1)
  • LocalDate日期加减一天,mysql日期加减一天
  • 制作游戏外挂的技术栈有哪些
  • 数学建模---利用Matlab快速实现机器学习(上)