【问题标题】:How to create a UDF in HIVE using python for a Timestamp transformation如何使用 python 在 HIVE 中创建 UDF 进行时间戳转换
【发布时间】:2018-01-02 19:40:27
【问题描述】:

我有一张表,其时间戳如下

DataFeedDTTM
------------
2016-10-20 15:57:42.1

但是当我查询它时,我需要如下格式。

select DataFeedDTTM from atable;

(数据可能很大,因此也需要最佳解决方案,但我可以有任何输入)

DataFeedDTTM
------------
20170209 12:14:54.100000

我有一个替代方案来做 Case When - Type cast。但这似乎并不简单。

之所以简单,是因为我必须通过 Python 代码动态地进行此查询,并从 Hive 读取数据并将其写入 CSV。

【问题讨论】:

    标签: python hive timestamp user-defined-functions user-defined-data-types


    【解决方案1】:

    'datetime' 模块可能会对您的任务有所帮助。

    from datetime import datetime
    d_in = "2016-10-20 15:57:42.1"
    d = datetime.strptime("2016-10-20 15:57:42.1", "%Y-%m-%d %H:%M:%S.%f")
    d_out = d.strftime("%Y%m%d %H:%M:%S.%f")
    print(d_out)
    

    这会产生:

    '20161020 15:57:42.100000'
    

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-23
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多