【问题标题】:How to format timestamp field while loading parquet file to redshift?将镶木地板文件加载到红移时如何格式化时间戳字段?
【发布时间】:2019-02-13 13:57:35
【问题描述】:

我有一堆带有不同格式时间戳字段的镶木地板文件。我想在将数据加载到红移表时统一格式。但是下面的语法不起作用,它会抛出错误TIMEFORMAT argument is not supported for PARQUET based COPY

有什么解决办法吗?我只能想到一种解决方案,即在创建 parquet 文件时统一所有时间戳格式。由于我必须加载 2-3 年的 parquet 文件,因此该解决方案非常耗时。如果您有任何其他解决方案或以下语法中缺少任何内容,任何人都可以告诉我

语法:

COPY redshift_table_name
FROM 's3://path/to/files'
IAM_ROLE '*****'
TIMEFORMAT AS 'YYYY-MM-DDTHH:MI:SS'
FORMAT AS PARQUET

【问题讨论】:

  • 如何在 parquet 文件上定义多个 Spectrum 表,每个表对应不同的日期格式?然后,您可以从这些 Spectrum 表查询到单个 Redshift 表,同时标准化日期。您没有提到有多少种独特的日期格式,但如果只有少数,那么这可能对您有用。

标签: amazon-web-services amazon-s3 amazon-redshift parquet


【解决方案1】:

如果您可以使用 Pyarrow 库,请加载 parquet 表,然后使用 use_deprecated_int96_timestamps 参数加载 write them back out in Parquet format。 Redshift 将正确识别这些。在加载 Parquet 时,我无法让它正确识别任何其他时间戳格式。

【讨论】:

    猜你喜欢
    • 2021-03-22
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多