如何使用 python 在 HIVE 中创建 UDF 进行时间戳转换

Posted

技术标签:

【中文标题】如何使用 python 在 HIVE 中创建 UDF 进行时间戳转换【英文标题】:How to create a UDF in HIVE using python for a Timestamp transformation 【发布时间】: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。

【问题讨论】:

【参考方案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'

【讨论】:

以上是关于如何使用 python 在 HIVE 中创建 UDF 进行时间戳转换的主要内容,如果未能解决你的问题,请参考以下文章

使用 create-hive-table 在 Hive 中创建表时如何使用自定义分隔符

如何在 Hive 中创建 UDF

如何在 Hive 中创建静态视图?

确定在 Hive 中创建 UDF 的语言

在 hive 中创建带有附加列的表

如何在 Hive CDH 中创建 ORC 文件?