【问题标题】:Sqoop export from Hive to Teradata Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]Sqoop 从 Hive 导出到 Teradata 时间戳格式必须是 yyyy-mm-dd hh:mm:ss[.fffffffff]
【发布时间】:2023-03-04 07:29:08
【问题描述】:
我正在尝试将数据从 Hadoop Hive 导出到 Teradata。我的数据包含可以为 NULL 的时间戳。
当我进行导出时,对于时间戳为 NULL 的行,我收到以下错误:
"时间戳格式必须是yyyy-mm-dd hh:mm:Ss[.fffffffff]"
在我的 sqoop 导出中,我确实添加了两个选项 --input-null-string '\N' 和 --input-null-non-string '\N'。
你知道解决这个问题的方法吗?
谢谢。
【问题讨论】:
标签:
hadoop
timestamp
hive
teradata
sqoop
【解决方案1】:
Teradata中timestamp数据类型的列需要有如下格式yyyy-mm-dd hh:mm:Ss的值,而你的hive表中的数据没有这种格式。
使用其中一些 hive udf 更改 hive 表中相应空值时间戳的值:
- unix_timestamp(字符串日期,字符串模式)
-
或者简单地检查 null 并使用
替换为空字符串
案例
当日期=''
然后 ''
其他日期
结束,
希望对你有帮助