【问题标题】:Glue Crawler does not recognize TimestampsGlue Crawler 无法识别时间戳
【发布时间】:2020-04-07 09:46:22
【问题描述】:

我在 S3 存储桶中有 JSON 文件,这些文件可能会不时更改其架构。为了能够分析我想定期对它们运行胶水爬虫的数据,Athena 中的分析通常是有效的。

问题:我的时间戳字符串未被识别为时间戳

时间戳目前有以下格式2020-04-06T10:37:38+00:00,但我也尝试过其他的,例如2020-04-06 10:37:38 - 我可以控制它并且可以调整格式。

设置 serde 参数的建议可能不适用于我的应用程序,我希望完全识别该方案并且不必单独定义每个字段。 (AWS Glue: Crawler does not recognize Timestamp columns in CSV format) 通常不需要手动调整表,我想在 CloudFormation 堆栈中自动部署 Glue。

你知道我还能尝试什么吗?

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation aws-glue aws-glue-data-catalog


    【解决方案1】:

    这是一个很常见的问题。我们在读取 text/json 文件时解决问题的方法是在两者之间有一个额外的步骤来转换和设置正确的数据类型。爬虫数据类型有时有点不确定,并且基于当时可用的数据样本

    【讨论】:

    • 谢谢。您是否有任何文档需要如何格式化我的时间戳以将其识别为胶水表中的时间戳类型?我尝试了几种格式,到目前为止没有运气
    • 应该更清楚。 U 可能应该使用 parquet 作为中间文件类型,以便在粘合表定义中使用 parquet 文件的模式。关于您关于哪种时间戳格式胶水可以检测为时间戳类型的问题....据我所知,似乎没有任何具体的文档。但是可能值得尝试 pyspark 中提到的格式,因为我相信这是后端使用的格式
    • 这是从 spark docos timestampFormat 中提取的——设置表示时间戳格式的字符串。自定义日期格式遵循 java.text.SimpleDateFormat 中的格式。这适用于时间戳类型。如果设置了 None,则使用默认值 yyyy-MM-dd'T'HH:mm:ss.SSSXXX。
    • 它使用的可能不是火花。但如果你有时间,值得一试
    • 再次感谢您!我尝试了所有这些格式都没有运气:2020-04-07T11:04:01.1586251321, 2020-04-07 11:04:01, 2020-04-07 11:04:01.1586251321, 2020-04-07 11:04 :01.1586251321+1, 2020-04-07 11:04:01.1586251321+00:00, 2020-04-07T11:04:01.1586251321+1, 2020-04-07T11:04:01.1586251321+04-00, 20321+04-00 07 11:04:01+1, 2020-04-07T11:04:01+1, 2020-04-07T11:04:01+01, 2020-04-07 11:04:01+01 有什么想法吗?跨度>
    猜你喜欢
    • 2018-05-19
    • 1970-01-01
    • 2022-07-27
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2022-12-05
    相关资源
    最近更新 更多