Python 雅典娜如何从S3桶读取拼花地板文件
我正在将一个python项目(s3+Athena)从使用csv移植到拼花地板 我可以制作拼花文件,可以通过“拼花视图”查看 我可以把文件上传到s3 bucket 我可以创建指向s3 bucket的Athena表 然而,当我在Athena Web GUI上查询表时,它运行了10分钟(似乎永远不会停止),并且没有显示结果 整个项目很复杂。我试图简化这个案件 1.假设我们有以下csv文件(test.csv) 2.然后,我使用以下python(2.7)代码将其转换为拼花文件(test.parquet) 3.通过s3 Web GUI将test.parquet上传到s3 bucket文件夹“abc_bucket/abc_folder” 4.使用Athena Web GUI创建下表Python 雅典娜如何从S3桶读取拼花地板文件,python,amazon-s3,parquet,amazon-athena,fastparquet,Python,Amazon S3,Parquet,Amazon Athena,Fastparquet,我正在将一个python项目(s3+Athena)从使用csv移植到拼花地板 我可以制作拼花文件,可以通过“拼花视图”查看 我可以把文件上传到s3 bucket 我可以创建指向s3 bucket的Athena表 然而,当我在Athena Web GUI上查询表时,它运行了10分钟(似乎永远不会停止),并且没有显示结果 整个项目很复杂。我试图简化这个案件 1.假设我们有以下csv文件(test.csv) 2.然后,我使用以下python(2.7)代码将其转换为拼花文件(test.parquet)
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;
我的问题是上面哪一步是错误的,所以我不能从雅典娜那里查询表
非常感谢您的帮助。尝试使用“选择自”选项在S3桶中查看您的拼花地板数据。
如果可以的话,那么使用雅典娜创建拼花文件的表,并带有适当的表列标题。稍后预览表格以查看内容。尝试使用“选择自”选项查看S3桶中的拼花地板数据。
如果可以的话,那么使用雅典娜创建拼花文件的表,并带有适当的表列标题。稍后预览表格以查看内容。我们可以通过为给定的s3位置创建表格来读取雅典娜中的拼花文件
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\u bucket/abc\u folder/*
目录中的拼花地板文件以SNAPPY格式压缩
更多细节可以在AWS文档中找到。我们可以通过为给定的s3位置创建一个表来读取雅典娜中的拼花文件
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\u bucket/abc\u folder/*
目录中的拼花地板文件以SNAPPY格式压缩
更多详细信息可在AWS文档中找到。您只需将一个文件和少量数据放在该位置即可对其进行测试。可以验证雅典娜是否正在读取文件格式。你的数据有多大?它在多个文件中吗?分区?@JohnRotenstein谢谢你的回复。我已经试过你的建议了。这就是我在问题中提到的简化情况,其中只有一个文件有2行(1个标题行和1个内容行),并且没有任何分区。您可以通过只在该位置放置一个文件和少量数据来测试它。可以验证雅典娜是否正在读取文件格式。你的数据有多大?它在多个文件中吗?分区?@JohnRotenstein谢谢你的回复。我已经试过你的建议了。这就是我在问题中提到的简化情况,其中只有一个文件有2行(1个标题行和1个内容行),并且没有任何分区。
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");