如何使用 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 进行时间戳转换的主要内容,如果未能解决你的问题,请参考以下文章