Spark to_date 生成奇怪的 5 位数年份

Spark to_date generates strange 5 digit year

我在 HUE 编辑器中针对 HIVE table 发出了以下 select 语句并得到了以下结果。

SELECT statestartdate,
to_date(from_unixtime(statestartdate, 'yyyy-MM-dd HH:mm:ss')) AS statestartdatestr
FROM processmining.InstanceUserPerformance limit 100

结果

statestartdate  statestartdatestr
1363782909107   45186-07-24

问题 在 'statestartdatestr' 字段的年份区域,出于某种奇怪的原因我得到 45186!?谁能指出为什么请?谢谢。

你的 statestartdate 好像是自 Unix 纪元以来的毫秒数。根据 Cloudera docs.

,函数 from_unixtime 从 Unix 纪元开始

因此,如果您想将 statestartdate 转换为秒和日期数据类型,您可以尝试这样的操作...

SELECT statestartdate,
  to_date(
    from_unixtime(
      floor(statestartdate / 1000),
      'yyyy-MM-dd HH:mm:ss'
    )
  ) AS statestartdatestr
FROM processmining.InstanceUserPerformance LIMIT 100