停止sqoop将datetime转换为bigint

时间:2016-07-28 09:10:00

标签: hadoop sqoop

最近我注意到每当我使用Sqoop从SQL数据库中摄取时,所有日期时间字段都将转换为bigint(epoch * 1000)而不是String。

重要的是要注意:我要存放在镶木地板上。

我一直在尝试像"--map-column-java"这样的一堆sqoop标志,但我不想在数千个表中为数百列手动定义它。

我错过了什么标志来防止这种sqoop行为?

似乎sqoop在以纯文本格式存储时没有这样做。

1 个答案:

答案 0 :(得分:2)

我没有让sqoop在我的桌子上做出神秘的魔法,而是决定做以下事情:

  1. 提取到临时表格,以文本形式存储。
  2. 创建一个表(如果不存在),如临时表,存储为镶木地板
  3. 将文本存储的临时表覆盖到镶木地板存储表中
  4. 这允许正确的日期格式化,而不会在Sqoop中调整(可能不存在)配置和设置。

    唯一的转折是它稍微慢了