我正在将一个python项目(s3 + Athena)从使用csv移植到 parquet 上。
我可以制作 parquet 文件,可以通过Parquet View查看。
我可以把文件上传到s3 bucket。
我可以创建指向s3存储桶的Athena表。
但是,当我在Athena Web GUI查询表时,它运行了10分钟(似乎永远不会停止),没有显示结果。
整个项目很复杂,我尽量把事情简单化。
1.假设我们有以下csv文件(test.csv)
"col1","col2"
"A","B"
2.然后,我使用下面的python(2. 7)代码将其转换为parquet文件(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查询表。
我们非常感谢您的帮助。
2条答案
按热度按时间yjghlzjz1#
尝试查看您的 parquet 数据在S3桶本身与“选择”选项。如果它的罚款,然后使用雅典娜创建表您的 parquet 文件与适当的表列标题。稍后预览表查看内容。
fjnneemd2#
我们可以通过为给定的s3位置创建一个表来读取雅典娜的 parquet 文件。
假设
s3://abc_bucket/abc_folder/*
目录中的 parquet 文件以SNAPPY格式压缩。更多详细信息,请参见this AWS文档。