将数据从各种RDBMS导出到Hive时,时间戳中毫秒末尾的0被截断。例如-
Source Hive
2015-03-27 23:42:44.300 => 2015-03-27 23:42:44.3
2015-03-27 23:42:44.000 => 2015-03-27 23:42:44.0
2015-03-27 23:42:44.350 => 2015-03-27 23:42:44.35
我在每个表中都有 2 列,creat_dt
和updt_dt
有这个问题。我应用的临时解决方案是使用 2 步过程对数据进行 sqoop 处理。
- Sqoop(eval) 表结构并使用 sed 命令,我添加演员表命令转换为正确的时间戳格式并保存列表变量中的列。
- 通过传递步骤 1 中的列值从源 Sqoop(导入)数据。
想知道是否有可以在sqqop中指定的直接方法或命令,这将有助于我实现目标。
谢谢阿肖克
我希望这可能会起作用。
在 sqooping 将其转换为字符串并 sqoop 它时,如果您希望 Hive 中的日期再次使用to_date函数将其转换为日期。