我试图在Redshift中查询一个外部表(指向包含Parquet文件的S3文件夹),但是每当我这样做时,每个字段都是空的。但是,当我在Redshift上创建本地表并从同一Parquet文件加载数据时,这些字段并不为空,并且它们具有我希望它们具有的数据。
要创建外部表,我使用以下查询:
create external schema spectrum
from data catalog
database 'spectrumdb'
iam_role 'arn:aws:iam::$SOMEROLE'
create external database if not exists;
create external table spectrum.lineitem_2 (
l_orderkey bigint ,
l_partkey bigint ,
l_suppkey bigint ,
l_linenumber bigint ,
l_quantity double precision ,
l_extendedprice double precision ,
l_discount double precision ,
l_tax double precision ,
l_returnflag char(1) ,
l_linestatus char(1) ,
l_shipdate char(10) ,
l_commitdate char(10) ,
l_receiptdate char(10) ,
l_shipinstruct char(25) ,
l_shipmode char(10) ,
l_comment varchar(44) )
stored as PARQUET
location 's3://$BUCKET/$FOLDER/'
table properties ('numRows'='405022147');
使用此查询:
select * from SPECTRUM.lineitem_2 limit 5;
我得到以下结果:
l_orderkey | l_partkey | l_suppkey | l_linenumber | l_quantity | l_extendedprice | l_discount | l_tax | l_returnflag | l_linestatus | l_shipdate | l_commitdate | l_receiptdate | l_shipinstruct | l_shipmode | l_comment ------------ + ----------- + ----------- + ------------- -+ ------------ + ----------------- + ------------ + ---- --- + -------------- + -------------- + ------------ + --- ----------- + --------------- + ---------------- + ----- ------- + ----------- | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
当我期望以下情况时:
l_orderkey | l_partkey | l_suppkey | l_linenumber | l_quantity | l_extendedprice | l_discount | l_tax | l_returnflag | l_linestatus | l_shipdate | l_commitdate | l_receiptdate | l_shipinstruct | l_shipmode | l_comment
------------ + ----------- + ----------- + ------------- -+ ------------ + ----------------- + ------------ + ---- --- + -------------- + -------------- + ------------ + --- ----------- + --------------- + ---------------------- ----- + ------------ + ------------------------------- ----- 406401153 | 140024 | 477525 | 4 | 6 | 6384.12 | 0.04 | 0.02 | N | O | 1995-09-15 | 1995-09-03 | 1995-09-30 |交付人|邮件|具有讽刺意味的帐户 406401154 | 18074465 | 187005 | 1 | 12 | 17262.72 | 0.05 | 0.07 | A | F | 1994-09-19 | 1994-07-09 | 1994-10-01 |退货|空气|异常账户 406401154 | 1950973 | 938475 | 3 | 16 | 32382.08 | 0.04 | 0.01 | A | F | 1994-06-14 | 1994-08-22 | 1994-07-13 |退货|卡车|最终要求讨价还价。 PL 406401155 | 18762207 | 874747 | 1 | 19 | 24097.13 | 0.04 | 0.06 | R | F | 1992-11-14 | 1992-09-15 | 1992-12-07 |交付人|空气|乌斯特蓬松异常的存款w 406401155 | 22935297 | 1335298 | 3 | 18 | 23960.7 | 0.04 | 0.03 | R | F | 1992-09-09 | 1992-08-28 | 1992-09-22 |收集鳕鱼|空气|展开待处理,
此外,似乎Spectrum可以实际看到文件中正确的行数。似乎看不到数据。难道我做错了什么?抱歉,格式化。
编辑:我必须补充一点,几天前我能够使用相同的文件和命令来执行此操作。刚才它停止工作了。