csv - 将 “2017-10-31 20:42:00”字符串转换为Apache Hive中的时间戳

标签 csv hadoop hive

我最近将一个csv文件上传到Apache Hive表,该文件有3个带有时间戳的列

start_time,end_time,last_updated
"2017-10-23 11:07:00","2017-10-31 20:27:02","2017-10-31 20:27:02"
"2017-10-17 09:54:00","2017-10-23 10:51:02","2017-10-23 10:51:02"

一旦我将相同的文件上传到Apache Hive,它将所有这些列作为字符串,我试图将这些列作为时间戳记数据类型,但是值变为NULL。

我也尝试进行类型转换,但没有帮助!

我真的希望它们成为时间戳。

单击here以进行我经历过的类型转换。

最佳答案

使用unix_timestamp并将其转换为bigint

select
  cast(
   unix_timestamp("2017-10-23 11:07:00","yyyy-MM-dd HH:mm:ss") as bigint
   )

返回1508782020。当您想将其转换为日期时使用
select from_unixtime(1508782020, 'yyyy-MM-dd HH:mm:ss')
返回2017-10-23 11:07:00

关于csv - 将 “2017-10-31 20:42:00”字符串转换为Apache Hive中的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48281248/

相关文章:

python - 使用 Python DictReader 获取特定行和值

linux - 将单个 csv 文件的前两列合并到另一列中

hadoop - Hbase 客户端创建数千个到单个服务器的连接

java - Hive,我如何检索所有数据库的表列

hadoop - hive 错误运行选择查询

python - 将 CSV 文件记录与 Python Scrapy 输出数据进行比较

java - 加载 native-hadoop 库失败

hadoop - 在云中进行 Hadoop 概念验证所需的最低配置是什么?

hadoop - [Hive]如何将输出文件名从000000_0.gz更改为PREFIX-000000_0.gz?

c# - 使用 LINQ 将 SQL 表转为 CSV