AWS Redshift Spectrum decimal 类型读取 parquet double 类型
AWS Redshift Spectrum decimal type to read parquet double type
我有 Pandas(pyarrow) 编写的 parquet 文件,其中字段为 Double 类型。
以下是镶木地板架构:
message schema {
optional binary domain (STRING);
optional binary type;
optional binary country;
optional binary region;
optional binary country_code (STRING);
optional int64 date (TIMESTAMP(MILLIS,true));
optional double visits;
optional double average_visit_duration;
}
问题:
我使用 Redshift Spectrum 创建外部 table 来读取那些镶木地板中的数据。
Table 架构:
CREATE EXTERNAL TABLE spectrum.similarweb_daily_current(
domain varchar(200),
type varchar(200),
country varchar(200),
region varchar(200),
country_code varchar(200),
visits decimal(38,37),
average_visit_duration decimal(38,37))
STORED as PARQUET
LOCATION
's3://XXX'
在执行简单的 select 查询时,显示架构不兼容 => 双精度与十进制的错误。
有人知道如何解决吗?
我做的研究:
在 Pandas/pyarrow 上,我似乎无法在写入 parquet 时将模式调整为十进制。
在 Redshift 上,Double 类型不支持外部 table(spectrum)
解决了这个问题。
使用 Redshift "Double Precision" 在 parquet 中键入 double。
我有 Pandas(pyarrow) 编写的 parquet 文件,其中字段为 Double 类型。 以下是镶木地板架构:
message schema {
optional binary domain (STRING);
optional binary type;
optional binary country;
optional binary region;
optional binary country_code (STRING);
optional int64 date (TIMESTAMP(MILLIS,true));
optional double visits;
optional double average_visit_duration;
}
问题: 我使用 Redshift Spectrum 创建外部 table 来读取那些镶木地板中的数据。 Table 架构:
CREATE EXTERNAL TABLE spectrum.similarweb_daily_current(
domain varchar(200),
type varchar(200),
country varchar(200),
region varchar(200),
country_code varchar(200),
visits decimal(38,37),
average_visit_duration decimal(38,37))
STORED as PARQUET
LOCATION
's3://XXX'
在执行简单的 select 查询时,显示架构不兼容 => 双精度与十进制的错误。 有人知道如何解决吗?
我做的研究:
在 Pandas/pyarrow 上,我似乎无法在写入 parquet 时将模式调整为十进制。
在 Redshift 上,Double 类型不支持外部 table(spectrum)
解决了这个问题。 使用 Redshift "Double Precision" 在 parquet 中键入 double。