【问题标题】:How to import Datetime column from SQL Server to Hive using Sqoop如何使用 Sqoop 将日期时间列从 SQL Server 导入 Hive
【发布时间】:2021-05-14 01:19:58
【问题描述】:

我正在尝试使用 Sqoop 将数据从 SQL Server 导入 Hive。当我导入日期时间列时,它会忽略下面的值。

SQL Server - 2021-02-10 10:30:00.000 蜂巢 - 2021-02-10 10:30:00.0

Sqoop 忽略最后一个点之后的所有零,只保留一个零。但如果我们有实际值,那么 sqoop 会正确导入实际值,如下所示。

SQL Server - 2021-02-10 10:30:10.865 蜂巢 - 2021-02-10 10:30:10.865

即使我使用 sqoop eval,我也会看到这个问题。

Sqoop 导入 --connect --user-name root --password root --table 客户 --hive-import --hive-database 批发 --hive-table customer_stg --hive-overwrite --schema dbo

【问题讨论】:

    标签: hive timestamp sqoop


    【解决方案1】:

    这是很正常的行为。以毫秒为单位的最后一个零在时间戳中并不重要。如果您从 2021-02-10 10:30:00.120 这样的字符串加载 Hive 中的时间戳,然后选择它,您将看到 2021-02-10 10:30:00.12

    其实和0.120 = 0.12是一模一样的时间戳,只是不同工具中的字符串表示方式不同。

    时间戳没有与之关联的严格字符串格式,Hive 支持 'yyyy-MM-dd HH:mm:ss.SSSSSSSSS',秒部分是可选的。如果需要特定格式,则需要将其转换为具有明确格式的 STRING。

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多