AWS Redshift Spectrum十进制类型以读取镶木地板双精度类型

时间:2019-05-10 04:15:38

标签: pandas amazon-redshift parquet

我有Pandas(pyarrow)编写的实木复合地板文件,其字段为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创建外部表以读取这些拼合中的数据。 表架构:

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'

进行简单选择查询时,显示架构不兼容=> Double vs Decimal的错误。 有人知道如何解决吗?

我做了研究:
在Pandas / pyarrow上,写入镶木地板时似乎无法将架构调整为十进制。
在Redshift上,Double类型不支持外部表(频谱)

1 个答案:

答案 0 :(得分:0)

解决了这个问题。 将Redshift“ Double Precision”类型用于镶木地板中的双重装饰。