1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 结果发现,Athena的文档要么不正确,要么充其量是具有误导性的。Alexandre所提供的优秀答案在这里说得最好 https://stackoverflow.com/questions/52564194/athena-unable-to-parse-date-using-opencsvserde
基本上你需要在UNIX Epoch时间中存储日期或时间戳。你不会知道这一点,因为所有时间都被强调格式。我尝试作为时间戳,这就是我得到这个错误的原因。当我把它存储为UNIX时间时,我就有了进展。然而,unix_timestamp()
函数只返回以秒为单位的长时间,并且时间戳需要以毫秒为单位的时间(双精度)。因此,我只需要乘以1000:
df = df.withColumn("time", f.unix_timestamp("time", 'dd-MM-yyyy HH:mm:ss') * 1000)
这样做之后,你会得到一个13位双精度数,如果选择了时间戳作为数据类型,Athena将正确地从中产生时间戳。
相关内容
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前