我正在尝试用Python来搞清楚..它可以在Parquet中作为字符串使用的原生配置单元时间戳格式是什么?
我认为巨蟒给了我一个很好的近距离接触的方式,但是..我注意到我的代码正在生成一个很好的python日期。
def dt2epoch(value):
d = parse(value)
d = d.replace(microsecond=0)
timestamp = d.replace(tzinfo=datetime.timezone.utc).timestamp()
new_timestamp = round(int(timestamp), -3)
new_date = datetime.datetime.fromtimestamp(new_timestamp)
return new_timestamp
但当我把它装入Hive作为table时
CREATE TABLE IF NOT EXISTS hive.DBNAME.TABLE_NAME (
-> COL1 VARCHAR,
-> COL2 VARCHAR,
-> COL3 VARCHAR,
-> COL4 BIGINT,
-> COL5 VARCHAR,
-> COL6 VARCHAR,
-> timestamped TIMESTAMP)
-> WITH (
-> external_location = 's3a://MYBUCKET/dir1/dir2/',
-> format = 'PARQUET');
它出来的时候就像是70年代的
1条答案
按热度按时间tez616oj1#
我认为它将您的时间戳除以1000,这已经是以秒为单位了。如果您将1663529(秒)转换为时间戳,它将得到20世纪70年代的结果。我不使用配置单元,但也许您可以将输入乘以1000,或者了解它是否接受任何允许您在代码中定义的参数,无论输入是以秒还是毫秒为单位。