【发布时间】:2020-02-25 01:56:07
【问题描述】:
我想查询这个作为 JSON 对象的列。
| x | y | z |
----------------------------------------------------------------
| 1 | first | {"first_name":["Pat","Amy T."],"last_name":["Liman","Pedano"],"updated_at":["1989-11-30T19:00:00.000-05:00","2018-10-11T12:45:44.674-04:00"]} |
| 2 | second | {"first_name":["Elli","Ala"],"last_name":["Sheppard","Mcgrial"],"updated_at":["2019-03-16T11:15:25.714-04:00","2019-05-21T11:29:00.684-04:00"]} |
其中 z 是一个 json 对象。
我试过了
SELECT x, y, t1.first_name, t1.last_name, t1.updated_at
FROM versions_table v
LATERAL VIEW json_tuple(v.z, 'first_name', 'last_name', 'updated_at') t1
as `first_name`, `last_name`, `updated_at`
where first_name is not null;
但我得到一个 json 数组。更改日期格式的最佳方法是什么
输出是这样的2019-01-03。
谢谢!
【问题讨论】:
-
你用的是postgresql还是mysql?它们是不同的数据库
-
不清楚列类型是日期时间格式还是字符串,因为它确实有 T,但是:尝试 select cast(updated_at as date) FROM ....
-
我在databricks中做这个查询,也就是Spark SQL
标签: mysql sql postgresql apache-spark databricks