amazon-web-services - 将镶木地板文件加载到红移时如何格式化时间戳字段?
问题描述
我有一堆带有不同格式时间戳字段的镶木地板文件。我想在将数据加载到红移表时统一格式。但下面的语法不起作用,它会抛出错误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
解决方案
如果您可以使用 Pyarrow 库,请加载 parquet 表,然后使用参数以 Parquet 格式将它们写回。use_deprecated_int96_timestamps
Redshift 将正确识别这些。在加载 Parquet 时,我没有任何运气让它正确识别任何其他时间戳格式。
推荐阅读
- javascript - 使用数组代替 - 反应原生
- c# - 每毫秒从多个线程更新数据表
- angular - 我想从这个 API 中获取特定的项目,我该怎么做?
- powershell - 通过 Powershell 获取 NTFS 权限并通过管道输出以在不同位置设置相同的权限
- visual-studio-code - 如何在 Visual Studio 代码中创建具有水平拆分的终端
- azure-devops - 修改后的 Azure DevOps YAML 管道访问资源的授权在哪里列出?
- c++ - 在父对象的自定义析构函数中重置 shared_ptr
- google-maps - 断言失败:'纬度!= null':不正确。我已经尝试了几件事
- android - 使用双簧管时,设置输入和输出流时通道数是否可能不匹配?
- android - SIM 串行信息 API 级别 29