amazon-web-services - 当底层 JSON 文件中的时间戳格式发生变化时在 Athena 中查询时间戳数据
问题描述
我正在从存储在 S3 中的 JSON 文件中查询 AWS Athena 中的数据。我已经使用 AWS Glue 将所有 JSON 文件加载到 Athena 中,到目前为止它运行良好。但是,JSON 文件中的时间戳格式已从
2018-03-23 15:00:30.998
到
2018-08-29T07:59:50.568Z
所以表格最终有这样的条目
2018-08-29T07:59:42.803Z
2018-08-29T07:59:42.802Z
2018-08-29T07:59:32.500Z
2018-03-23 15:03:43.232
2018-03-23 15:03:44.697
2018-03-23 15:04:11.951
当我尝试对整个数据库运行查询时,这会导致解析错误。
如何在 AWS Glue(或 Athena)中适应这一点,以便在查询时不必拆分数据?我试过研究自定义分类器,但我不确定如何在这种特殊情况下使用它们。
提前致谢。
解决方案
不幸的是,您必须统一数据。如果您决定使用“2018-08-29T07:59:50.568Z”格式,则可以使用具有以下 serde 属性的 org.apache.hive.hcatalog.data.JsonSerDe 库读取此类数据:'timestamp.formats'=' yyyy-MM-dd\'T\'HH:mm:ss.SSSZ'
推荐阅读
- r - 从散点图中找到 2 个回归方程/斜率并比较方程/斜率
- python - 导入 pandas df 时删除/忽略 .dat 的前两行
- css - 使具有较小 z-index 的元素可点击
- drupal - Drupal 8 Gutenberg 模块正在阻止对现有网络表单元素的编辑并添加新元素
- tensorflow - 我们可以通过仅省略 pbtxt 标签映射文件中的标签来忽略 Tensorflow 对象检测 API 中不必要的类吗?
- python - Discord Bot Python 如何连接表情符号
- swift - iOS 14 上的 Arkit/SceneKit 引发新警告(金属)
- python - 将第二个 group by 添加到 valuecounts
- python - Python假设包:我可以确保使用某些值吗?
- shell - 基于时间戳和字符串模式的 grep