从Hive到Teradata时间戳格式的Sqoop输出必须是yyyy-mm-dd hh:mm:ss [.fffffffff]

时间:2014-11-13 17:00:38

标签: hadoop timestamp hive teradata sqoop

我正在尝试将数据从Hadoop Hive导出到Teradata。我的数据包含可以为NULL的时间戳。

当我执行导出时,对于具有NULL时间戳的行,我收到以下错误:
“时间戳格式必须为yyyy-mm-dd hh:mm:Ss [.fffffffff]”

在我的sqoop导出中,我添加了两个选项--input-null-string'\ N'和--input-null-non-string'\ N'。

您知道解决此问题的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

Teradata中数据类型为timestamp的列需要具有以下格式的值yyyy-mm-dd hh:mm:Ss,而hive表中的数据不具有此格式。

使用其中一些hive udfs更改hive表中相应的空值时间戳的值:

  • unix_timestamp(字符串日期,字符串模式)
  • 或只是检查null并使用

    替换为空字符串

    CASE     什么日期=''     然后 ''     ELSE日期 结束,

希望这有帮助