我正在将使用csv的python项目(s3 + Athena)移植到镶木地板上。
我可以制作实木复合地板文件,可以通过Parquet View进行查看。
我可以将文件上传到s3存储桶。
我可以创建指向s3存储桶的Athena表。
但是,当我在Athena Web GUI上查询该表时,该表将运行10分钟(看来它将永远不会停止)并且没有显示结果。
整个项目很复杂。我试图简化这种情况。
1。假设我们有以下csv文件(test.csv)
"col1","col2"
"A","B"
2。然后,我使用以下python(2.7)代码将其转换为镶木地板文件(test.parquet)
import fastparquet
import pandas as pd
df = pd.read_csv(r"test.csv")
fastparquet.write(r"test.parquet", df, compression="GZIP")
3。通过s3 Web GUI将test.parquet上载到s3存储桶文件夹“ abc_bucket / abc_folder”
4。通过Athena Web GUI创建下表
CREATE EXTERNAL TABLE IF NOT EXISTS abc_folder (
`col1` string,
`col2` string)
STORED AS PARQUET
LOCATION 's3://abc_bucket/abc_folder/'
TBLPROPERTIES (
"parquet.compress"="GZIP"
);
5。最后,在Athena上运行以下SQL。 SQL运行了10分钟,并且似乎永远存在。
select *
from abc_folder;
我的问题是以上哪一步是错误的,因此我无法从Athena查询表。
非常感谢您的帮助。
答案 0 :(得分:2)
我们可以通过为给定的 s3 位置创建一个表来读取 athena 中的 parquet 文件。
CREATE EXTERNAL TABLE abc_new_table (
dayofweek INT,
flightdate STRING,
uniquecarrier STRING,
airlineid INT
)
PARTITIONED BY (flightdate STRING)
STORED AS PARQUET
LOCATION 's3://abc_bucket/abc_folder/'
tblproperties ("parquet.compression"="SNAPPY");
这假设 s3://abc_bucket/abc_folder/*
目录具有以 SNAPPY 格式压缩的镶木地板文件。
可以在 this AWS 文档中找到更多详细信息。
答案 1 :(得分:0)
尝试使用“选择自”选项在S3存储桶中查看镶木地板数据。 如果可以,请使用Athena创建具有正确表列标题的镶木地板文件表。稍后预览表以查看内容。