Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 雅典娜如何从S3桶读取拼花地板文件_Python_Amazon S3_Parquet_Amazon Athena_Fastparquet - Fatal编程技术网

Python 雅典娜如何从S3桶读取拼花地板文件

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)

我正在将一个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创建下表

    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");