Как Афина может прочитать файл паркета из ведра S3
Я портирую проект Python (S3 + Athena) с использованием CSV для паркета.
Я могу сделать паркетный файл, который можно просмотреть в Parquet View.
Я могу загрузить файл в ведро s3.
Я могу создать таблицу Athena, указывающую на ведро s3.
Однако, когда я запрашиваю таблицу в веб-интерфейсе Athena, она запускается в течение 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. Загрузите файл test.parquet в папку корзины s3 "abc_bucket/abc_folder" с помощью веб-интерфейса s3
4. Создайте следующую таблицу с помощью веб-интерфейса Athena
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. Наконец, выполните следующий SQL в Афине. SQL работает в течение 10 минут и кажется навсегда.
select *
from abc_folder;
У меня вопрос, какой шаг выше неправильный, поэтому я не могу запросить таблицу из Афины.
Это высоко ценится за любую помощь.
2 ответа
Мы можем прочитать файл паркета в athena, создав таблицу для данного местоположения 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_bucket/abc_folder/*
каталог содержит файлы паркета, сжатые в формате SNAPPY.
Более подробную информацию можно найти в этом документе AWS.
Попробуйте просмотреть данные вашего паркета в самой корзине S3 с опцией "Выбрать из". Если это хорошо, то используйте Athena для создания таблицы вашего файла паркета с соответствующими заголовками столбцов таблицы. Позже предварительный просмотр таблицы для просмотра содержимого.