Как Афина может прочитать файл паркета из ведра 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 для создания таблицы вашего файла паркета с соответствующими заголовками столбцов таблицы. Позже предварительный просмотр таблицы для просмотра содержимого.

Другие вопросы по тегам